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

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

Восстановить пароль Регистрация
 
akhomyak
Сообщений: n/a
18.04.2012, 12:10     Вопрос по value-initialize структуры без конструктора #1
Народ, поясните, плз, почему следующий код

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++
Выделение памяти под массив объектов без вызова конструктора C++
C++ Класс с деструктором без конструктора
C++ Класс без конструктора. Ошибка 1 неразрешенных внешних элементов
Инициализация статических объектов без конструктора C++
C++ Структура программы или наследование, без использования конструктора базового класса
C++ Инициализация с помощью конструктора без параметров. Почему не нужны скобки?

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

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

Текущее время: 14:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru