![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
Здравствуйте! Я вот прохожу раздел "Аргументация конструирования", и у меня появилось несколько вопросов: В книге было написано, что если вы не создаете конструктор, то конструктор создается сам, по умолчанию, для того, что бы про инициализировать данные-члены объекта нулем. Так почему же при компиляции этого кода:
Код:
![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 09.07.2008
Сообщений: 26
|
![]()
Если я не ошибаюсь, то конструктор по умолчанию это конструктор без параметров (чаще всего и с пустым тело). Т.е.
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
Ехх, что то я все равно ничего не понял...
![]() Цитата:
Код:
![]() ![]() |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
ну тут наверно зависит от компилятора, что он сгенерирует, но что-то мне кажется не будет он генерировать такой "обнуляющий" конструктор. конструктор с пустым телом должен создать по идее в такой ситуации. А 2 - это просто видимо "мусор"
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
ну а что дает нам этот "пустой" конструктор?
Код:
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 22.09.2007
Сообщений: 71
|
![]()
"Пилите, Шура, пилите. Они золотые".....
![]() |
![]() |
![]() |
![]() |
#7 |
...
Форумчанин
Регистрация: 01.06.2008
Сообщений: 134
|
![]()
Уже очень давно разбирался с аналогичными вопросами. Возможно, из-за моей тогдашней неопытности было что-то запомнено и воспринято неправильно, но перепроверять стандарт сейчас у меня желания нет.
Насколько я помню, чтобы компилятор определил неявный конструктор по умолчанию, который все обнулит, необходимо: - чтобы не был объявлен ни один конструктор. - явный вызов конструктора по умолчанию, например, A a = A() Т.е. нужно добиться примерно следующего: Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
filosof_x86, спасибо, вот это уже хорошая информация. Посмотрите пожалуйста ссылку, там я как раз выложил тот фрагмент из книги. http://img144.imageshack.us/my.php?image=hghbr2.png
Что вы думаете по этому поводу? ![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 09.07.2008
Сообщений: 26
|
![]()
сделай student(){arg=0;}
У меня компилятор minGW ( Dev-C++) и он сам не создает никакие конструкторы. Теперь насчет фрагмента книги. 1. Можно создать класс без конструкторов...просто с конструкторами легче и нагляднее. Это на мой взгляд. 2. С++ точно не создает ничего. С++ это язык. Создает компилятор...хотя как я уже говорил мой, Dev-C++, ничего не создает. ЗЫ Найди норм книгу. Вообще море литературы по С++ есть в "выделенной теме" в этом разделе. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
![]()
Спасибо всем за помощь, вроде разобрался...
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как определить содинение по умолчанию ? | Crazyman | Работа с сетью в Delphi | 5 | 30.06.2008 00:24 |
Конструктор копирования | Djaconda | Общие вопросы C/C++ | 3 | 11.06.2008 18:54 |
значения по умолчанию | azat | БД в Delphi | 5 | 11.12.2007 15:56 |
Дата по умолчанию | ГОСЕАН | БД в Delphi | 3 | 11.07.2007 19:33 |
Конструктор объектов | Yoger | Общие вопросы Delphi | 10 | 20.04.2007 12:45 |