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

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

Войти
Регистрация
Восстановить пароль
 
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
#1

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

09.11.2011, 13:22. Просмотров 770. Ответов 4
Метки нет (Все метки)

Здравствуйте, товарищи!

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

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

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

Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром? - C++
Добрый день, сразу к делу, есть некий класс class some { int x; public: some(int y = 1) : x(y) {} };

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно» - C++
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? - C++
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++
1)Любезные,скажите когда надо исп. списки инициализации, а когда можно заменить констуктором по умолчанию? 2) правильно ли...

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

Конструктор класса не видит конструктор по умолчанию другого класса - C++
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть....

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

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

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

Кто что знает по этому вопросу?
Конструктор по умолчанию неявно объявляется компилятором всегда, если не задан пользователем. Конструктор по умолчанию определяется неявно компилятором тогда, когда он используется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 21:42
Привет! Вот еще темы с ответами:

Конструктор по умолчанию - C++
Здравствуйте, есть такой код: explicit RFileDownloader(QObject *parent = 0); explicit RFileDownloader(const QUrl &url = QUrl(),...

Конструктор по умолчанию - C++
Показывает ошибку : 1 IntelliSense: для класса "tovar" не существует конструктор по умолчанию Подскажите пожалуйста как сделать ...

Конструктор по умолчанию - C++
Здраститя. #include <iostream> using namespace std; class random { public: random(int b){a=b;} ~random(){} int...

Конструктор по умолчанию - C++
как использовать конструктор по умолчанию в конструкторе с параметром? К по умолчанию заполняет массив заранее определёнными символами, а...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.11.2011, 21:42
Ответ Создать тему
Опции темы

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