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

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

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

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

18.04.2012, 12:10. Просмотров 272. Ответов 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++):

Не инициализируются структуры без конструктора - C++
Доброго времени суток. Прошу объяснить следующий момент) struct vert { vert(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {} ...

Класс с деструктором без конструктора - C++
Ребят подскажите, имеем например такой код: class first { public: first() { }

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

Вызов конструктора со скобками и без - C++
Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код: #include &lt;iostream&gt; using namespace std; class Test...

Инициализация статических объектов без конструктора - C++
Что-то я как ни вертел этот код, он у меня не заработал. Как я понял, смысл в том что не надо определять initialized, хотя без этого...

Объявление класса без дефолтного конструктора - C++
Имею некий класс, у которого нет конструктора по умолчанию. Class abc { abc(int){} } Как мне объявить переменную этого...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2012, 12:10
Привет! Вот еще темы с ответами:

Изменение параметров конструктора без аргументов - C++
Как в конструкторе без параметров изменить значения из функции main?

[template] почему код не компилируется без конструктора - C++
добрый вечер. вопрос поместил прямо в коде. http://rextester.com/AESO94403 #include &lt;iostream&gt; #include &lt;string&gt; #include...

Класс без конструктора. Ошибка 1 неразрешенных внешних элементов - C++
Добрый вечер. Помогите исправить ошибку. Пример у Страуструпа не работает. При компиляции появляется ошибка 1 неразрешенных внешних...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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