|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.06.2009, 03:38 | #1 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 184
|
Constructors
здрасвуйте!!!!! не могу понять!!!! Есть класс "strings" конструкору нужно передать "char*" как аргумент!!! Ето всё понятно!!! но почиму же обект всё же создаётся когда я создаю обект таким образом
" strings xxx("1234567890"); "??????
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
|
05.06.2009, 08:37 | #2 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 123
|
а в чем проблема? ясно что вызывается конструктор strings(char * str)...
<= P.S. если я тебе помог нажми весы слева <=
|
05.06.2009, 09:17 | #3 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 184
|
то что вызивает всм понятно!!!!! Я спрашивал почему вызивает?????????
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
|
05.06.2009, 09:31 | #4 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 123
|
а что еще он должен вызвать? Вы создаете новый объект, компилятор выбирает соответствующий переданным параметрам конструктор...
<= P.S. если я тебе помог нажми весы слева <=
|
05.06.2009, 09:32 | #5 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Он еще вызовется и если напишите: strings xxx = "1234567890"; конечно если директива explicit не указана А в чем собственно проблема я так и не понял |
|
05.06.2009, 09:35 | #6 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 123
|
Я тоже не понял, видно автору не нравится, что компилятор корректно реагирует на его код
<= P.S. если я тебе помог нажми весы слева <=
|
05.06.2009, 19:29 | #7 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 184
|
то что компилятор корректно работает мне нравица! просто мне хочеца понять суть вещей!!! я логику компилятора хотел понять!!!(логику в данной ситуации)!!!!
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
|
05.06.2009, 19:50 | #8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Ага. А конструкция вида:
Код:
Может будете удивлены, но и тут вызовется конструктор, только конструктор по умолчанию (у которого не параметров), а что самое интересное - если такого конструктора нет, то компилятор создаст его сам. Какая тут может быть логика? Видит компилятор, что описана переменная определенного типа, значит надо создать объект данного типа. Для классов соответственно вызываются соответствующие конструкторы. |