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

Когда создается конструктор по умолчанию? - C++

Восстановить пароль Регистрация
 
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
09.11.2011, 13:22     Когда создается конструктор по умолчанию? #1
Здравствуйте, товарищи!

Прочитал тут книгу "Ассемблер и дизасеммблирование" Пирогова и открыл для себя такую вещь, что
конструктор по умолчанию создается только для классов, содержащих виртуальные функции
(он нужен для инициализации таблицы виртуальных функций).

А во всех учебниках по С++ говорится, что конструктор по умолчанию создается всегда... Даже для классов без вирт. функций.

Кто что знает по этому вопросу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 13:22     Когда создается конструктор по умолчанию?
Посмотрите здесь:

C++ Как создать объект класса с двумя параметрами?
C++ Конструктор по умолчанию
C++ Конструктор по умолчанию
C++ Конструктор по умолчанию
C++ Конструктор по умолчанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
09.11.2011, 13:23     Когда создается конструктор по умолчанию? #2
Он формально создается, но фактически это же пустая функция, которая просто ничего не делает... Поэтому он фактически не создается...
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
09.11.2011, 13:39  [ТС]     Когда создается конструктор по умолчанию? #3
ValeryLaptev, т.е. считается, что создается всегда, а на деле уже как компилятор извратится?
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
09.11.2011, 21:16     Когда создается конструктор по умолчанию? #4
Haster, да, конечно.
Сыроежка
Заблокирован
09.11.2011, 21:42     Когда создается конструктор по умолчанию? #5
Цитата Сообщение от Haster Посмотреть сообщение
Здравствуйте, товарищи!

Прочитал тут книгу "Ассемблер и дизасеммблирование" Пирогова и открыл для себя такую вещь, что
конструктор по умолчанию создается только для классов, содержащих виртуальные функции
(он нужен для инициализации таблицы виртуальных функций).

А во всех учебниках по С++ говорится, что конструктор по умолчанию создается всегда... Даже для классов без вирт. функций.

Кто что знает по этому вопросу?
Конструктор по умолчанию неявно объявляется компилятором всегда, если не задан пользователем. Конструктор по умолчанию определяется неявно компилятором тогда, когда он используется.
Yandex
Объявления
09.11.2011, 21:42     Когда создается конструктор по умолчанию?
Ответ Создать тему
Опции темы

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