|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.10.2011, 10:58 | #1 |
Регистрация: 26.10.2011
Сообщений: 3
|
Странное поведение транслятора
В следуюшем примере код компилируется нормально, но объект класса b не содается (пробовал на Visual studio 10 и на Borland builder 5), что бы это могло значить?
struct a { public: a(){} }; class b { public: b(){} b(a a_) { printf("!!!"); } }; int main(int argc, char* argv[]) { b b_(a()); // compiles, but doesn't create a code for this string ??? return 0; } |
26.10.2011, 13:16 | #2 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
так он же нигде не используется.
|
26.10.2011, 14:37 | #3 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Цитата:
Код:
это объявление функции с именем b_, которая возвращает объект типа b и принимает 1 аргумент - указатель на функцию, которая возвращает объект типа a и не принимает параметров
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
26.10.2011, 14:46 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
но в принципе оно и ясно, не припомню чтоб можно было так создавать локальные обьекты. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
26.10.2011, 14:59 | #5 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Попробуй:
Код:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
26.10.2011, 15:02 | #6 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Пепел Феникса
если очень хочется, то можно написать так Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
26.10.2011, 15:08 | #7 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Если мне не изменяет память
Насколько помню Страуструпа, приведённое выражение - это одна из форм инициализатора. Соответственно, конструктор копирования здесь вызываться не должен вообще.
|
26.10.2011, 15:11 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
--------удалено--------------
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
26.10.2011, 15:17 | #9 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Abstraction
по стандарту компилятору разрешается либо выкинуть, либо оставить копирующий конструктор. на всех компиляторах, с которыми я работал в таких ситуациях он выкидывался. гарантировать везде и всегда это нельзя пс. вон кстати, в vc6 пишут, что вызывается 2 конструктора сервис пак не знаю
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 26.10.2011 в 15:25. |
26.10.2011, 15:49 | #10 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Это же инициализация, вот например. У int ведь нету конструктора =)
Код:
Код:
Код:
То в такой ситуации как лучше ? =) Последний раз редактировалось An1ka; 26.10.2011 в 16:00. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Com порт - странное поведение | BoozZzilla | Общие вопросы Delphi | 10 | 16.07.2011 01:39 |
Странное поведение чисел.... | sult9191 | Общие вопросы по Java, Java SE, Kotlin | 2 | 20.01.2011 17:12 |
Странное поведение realloc | eraserhp | Общие вопросы C/C++ | 7 | 17.05.2010 09:52 |
Странное поведение gets | alex_alpha | Общие вопросы C/C++ | 3 | 27.03.2010 18:21 |
Странное поведение null | Vitalyk | JavaScript, Ajax | 6 | 13.02.2010 15:22 |