|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.01.2010, 08:17 | #1 |
Регистрация: 16.01.2010
Сообщений: 8
|
Конструктор в конструкторе
Добрый день, Господа!
Вопрос на засыпку. Если я использую в конструкторе класса, конструктор того же класса, но с другой сигнатурой, то вложеный конструктор рассматривается как обычная функция в пространстве имён класса? код: class A { int a; public: A() { a = 0; } A(int b) { if(b) a = b; else A(); } }; |
30.01.2010, 13:05 | #2 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Конструктор класса нельзя вызывать явно. Он вызывается не явно только в момент создания объекта класса.
Проанализируйте и скомпилируйте такой код, и все станет ясно: Код:
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Последний раз редактировалось Blade; 30.01.2010 в 13:09. |
30.01.2010, 14:19 | #3 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Blade прав, добавлю лишь пояснения, почему это компилируется, но результат не тот, какой ожидалось: дело в том, что A() не вызывает конструктор, а создаёт временный объект класса, только и всего )
Код:
|
30.01.2010, 15:32 | #4 |
Регистрация: 16.01.2010
Сообщений: 8
|
Спасибо большое. На свой вопрос я получил квалифицированные и полные ответы. )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В конструкторе выделяется память под массив. Как быть с перегрузкой оператора = ? | TwiX | Общие вопросы C/C++ | 6 | 15.12.2009 12:18 |
Как задать onClick в конструкторе? | TwiX | Общие вопросы Delphi | 4 | 03.10.2009 20:39 |
Задать разрядность числа в конструкторе | zx11 | Общие вопросы C/C++ | 5 | 19.08.2009 19:01 |
Инициализация массивов в конструкторе. | jojahti | Общие вопросы C/C++ | 7 | 27.07.2009 13:30 |
Конструктор | PilGrim | Общие вопросы C/C++ | 0 | 16.01.2009 10:21 |