Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
akhomyak
Сообщений: n/a
#1

Вопрос по value-initialize структуры без конструктора - C++

18.04.2012, 12:10. Просмотров 268. Ответов 0
Метки нет (Все метки)

Народ, поясните, плз, почему следующий код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct A
{
    int a;
};
 
struct D: A
{
    int c;
};
 
int main(int argc, char* argv[])
{
    std::cout << "D().a == " << D().a << std::endl;
    std::cout << "D().c == " << D().c << std::endl;
 
    return 0;
}
в MS студии 2003 выдаёт

D().a == 4260508
D().c == 4220576

не смотря на то, что согласно пунктов 5.2.3.2 и 8.5.5 стандарта C++03, не статические мемберы и базовые классы должны быть value-initialize ("if T is a non-union class type without a user-declared constructor, then every non-static data member and base-class component of T is value-initialized"), т.е., в данном случае, по идее, должны иметь

D().a == 0
D().c == 0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 12:10     Вопрос по value-initialize структуры без конструктора
Посмотрите здесь:

Работа с классом без конструктора - C++
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. Написать...

Инициализация с помощью конструктора без параметров. Почему не нужны скобки? - C++
Доброго времени суток форумчане. Такой вопрос , почему в конструкторе без параметров не нужно ставить пустых скобочек? вот пример, делаю...

Выделение памяти под массив объектов без вызова конструктора - C++
Добрый вечер. Насколько я знаю, при выделении памяти под массив объектов, для каждого из них вызывается конструктор. Можно ли сперва...

Необходимо преобразовать код в более простой - без функций, процедур и конструктора. - C++
Всем доброго вечера. Долгое время работал над программой, в плане её понимания. Попытался переработать в более простой вид - без функций,...

структуры вопрос - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point { double x,y,z; }; double dlina(point a,point...

Небольшой вопрос по заполнению структуры - C++
В первой строке ошибка, пропущена точка с запятой.. Поправте, как правильно заполнить Zapravki_AZS.AZS = {{ &quot;Lukoil&quot;; ...

Вопрос. Чем отличаются структуры в С++ от классов в C++ - C++
Приветствую. Никак не могу понять чем же все таки отличаются структуры от классов, кроме того что в структуре по умолчанию все члены...

Не компилируется код с именем структуры без заглавной первой буквы - C++
Почему компилятор не компилирует код с именем структуры, которое начинается со строчной буквы? Linux (Ubuntu 12.04). Компилятор gcc,...

Run-Time Check Failure #3 The variable 'PixelFormat' is being used without being initialize - C++
Доброго времени суток, Написал не большую программу для работы с графикой (open gl (не суть)) и при попытке перейти в полноэкранный режим...

E2251 Cannot find default constructor to initialize base class - C++
Здравствуйте. Столкнулся с данной ошибкой: class fCountry { public: fCoutry(void) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru