HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 22.06.2009, 12:03
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Извиняюсь за глупый вопрос, но что делает эта единица в конце?
Код:
bool data7:1;
Ведь таким же образом наследуют структуры и классы, а тут мистическая цифра "1" =/
 
Ответить с цитированием

  #2  
Старый 22.06.2009, 12:06
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

это значит что ты эта переменная будит занимать 1 бит.
И по этому конструкция в структуре типа
bool data1:1;
bool data2:1;
bool data3:1;
bool data4:1;
bool data5:1;
bool data6:1;
bool data7:1;
bool data8:1;
тудет занимать 1 байт
 
Ответить с цитированием

  #3  
Старый 22.06.2009, 12:13
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Интерестно, спасибо.
 
Ответить с цитированием

  #4  
Старый 22.06.2009, 12:13
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме:
1027635

Репутация: 234
По умолчанию

Цитата:
Сообщение от Fata1ex  
Задание 4.
Код:
class A {
public:
    virtual void Foo (int n = 10) {
        cout << "A::Foo, n = " << n << endl;
    }
};

class B : public A {
public:
    virtual void Foo (int n = 20) {
        cout << "B::Foo, n = " << n << endl;
    }
};

int main() {
    A * pa = new B ();
    pa->Foo ();

    return 0;
}
//(c) habrahabr//h1ppo
Что выведет программа и почему?
Ну видимо B::Foo, n = 10 потому что значение по умолчанию будет взято из другой функции?
 
Ответить с цитированием

  #5  
Старый 22.06.2009, 12:13
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

ок, так:
Код:
struct _REC
 {
	unsigned data1:16;
	unsigned data2:16;
	unsigned data3:16;
	unsigned data4:1;
    unsigned data5:1;
    unsigned data6:1;
    unsigned data7:1;
    unsigned data8:1;
} REC;
//его почему-то short смущал
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #6  
Старый 22.06.2009, 12:16
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 desTiny Это правильный, но некрасивый способо. Есть более красивый и удобный)
 
Ответить с цитированием

  #7  
Старый 22.06.2009, 12:57
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Спасибо всем, кто поддержал тред. Обновил первый пост: есть нерешенные задачи!
 
Ответить с цитированием

  #8  
Старый 22.06.2009, 13:32
Lee_fx
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме:
265628

Репутация: 23
По умолчанию

Код:
void display(int in) {
     // What im doing here????????/
cout << ++in;
}

void foo() {
    int a=10;
    display(a);
}
Ничего не выведет, ??/ - триграф = \(конкатенация), в итоге получится функция void display(int in) {}
 
Ответить с цитированием

  #9  
Старый 22.06.2009, 13:33
Lee_fx
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме:
265628

Репутация: 23
По умолчанию

Код:
class SimpleClass {
		private:
			int a;
			int b;
		public:
			SimpleClass(int x) : b(x), a(b) {}
			void print() {
				std::cout << "a=" << a << " b=" << b << std::endl;
			}
	};

	int main() {
		SimpleClass a(42);
		a.print();
	return 0;
}
Насколько помню тут первой инициализируется переменная a, так как стоит первая в объявлении в private и инициализируется соответственно мусором из b. Короче SimpleClass(int x) : b(x), a(b), порядок b(x), a(b) или a(b), b(x) не важен.
 
Ответить с цитированием

  #10  
Старый 22.06.2009, 13:43
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Немного поправлю:
Списки инициализаторов инициализируют члены данных в порядке их следования в определении класса. Отсюда проблемы = )
Решения приняты )
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[PHP] ЗАДАНИЯ от Krist_ALL Krist_ALL PHP 205 30.11.2009 18:31
Задания ~Fenix~ Болталка 11 13.05.2006 11:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ