| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Странное поведение конструктора |
| Автор: fear 23.2.2010, 14:24 | ||
| Кто сможет объяснить такое поведение конструктора? Меня что-то озадачило весьма... старею похоже
a1 при создании выводит в консоль строку "CONSTRUCTOR()" a2 не выводит ничего ---- gcc version 4.2.1 (Apple Inc. build 5646) |
| Автор: mes 23.2.2010, 14:33 |
| А Вы не создаете объекта во втором случае, а описываете функцию - проблема синтаксиса |
| Автор: fear 23.2.2010, 14:44 | ||
сможете объяснить подробнее, как так? )) |
| Автор: mes 23.2.2010, 14:51 |
это прототип функции a2. |
| Автор: RatHat 23.2.2010, 14:56 | ||
Вот если бы ты там написал что-то типа
то тогда было бы понятно. А так ты не передаёшь ему никакого фактического параметра, вот он и не отрабатывает. |
| Автор: fear 23.2.2010, 15:07 |
| mes, ды вы оказывается гуру |
| Автор: Mephisto 23.2.2010, 15:08 | ||
А что в первом случае обозначают скобки? |
| Автор: RatHat 23.2.2010, 15:16 |
| Ну замечательно, так в итоге ты инициализировал объект, конструктор вызвался. При передаче параметра происходит та же инициализация, или я неправ? |
| Автор: mes 23.2.2010, 15:20 | ||||
сорри, запарился там опечатка, исправляюсь. равноценна
т.е описание функции возвращающей A и принимающей указатель на функцию возвращающую int . Добавлено через 13 минут и 20 секунд
не понял сути вопроса.. |
| Автор: mes 23.2.2010, 15:35 |
пока нет.. я не волшебник, а только учусь © |
| Автор: RatHat 23.2.2010, 17:38 |
| Ну ты типа написал, что, мол, передача параметров не при чём и всё такое... В то время, как что твой вариант, что мой, имеют право на существование, ибо в обоих вариантах конструктор вызовется. Это из сериии - 2+2 = 4; - Нет!!! 2+2 тут не при чём совершенно, я на самом деле 4*1 = 4! ;) |
| Автор: mes 23.2.2010, 18:32 | ||
не передача, а надеюсь узнаете свою фразу В этой модернизации не было добавлено, ничего, что могло бы считаться в Ваших терминах "каким-либо параметром", но пример стал работоспособным, а это значит, что кстати не проясните, что значит "никакой фактический параметр" ?
угу только "перепечатывая" диалог, упустили в нем первую фразу : - какой математической операцией сделать из единицы 4 ? |
| Автор: RatHat 23.2.2010, 18:37 |
| mes, для особо одарённых советую перечитать мой первый коммент, там написано: "ты НЕ передал никакого фактического параметра", а не ты "передал никакой фактический параметр". Если ты не понимаешь, что значит "не передал никакого фактического параметра", то я тебе сочувствую. Мораль, учимся читать или учим русский язык ;) И скорее первая фраза звучала как : "я вот пытаюсь сделать 4, но у меня не получается. 3+1 работает, а по-другому не работает" |
| Автор: mes 23.2.2010, 19:07 | ||||||
избавьте меня и других форумчан, пожалуйста, от подобного рода высказываний, хоть самокритичность и хорошо, и я рад что не боитесь открыто объявить, но такие фразы неприятны сами по себе и отвлекают от темы. Умейте доказывать свое мнение, а не прятаться за словами. Хороший вывод, я даже помогу Вам в этом .. Начнем с
ну вот и объясните почему в коде
НЕ передано никакого фактического параметра и НЕ РАБОТАЕТ а в
также НЕ передано никакого фактического параметра и РАБОТАЕТ ?! |
| Автор: azesmcar 24.2.2010, 08:59 | ||||||
Этот вопрос подробно обсуждался у Саттера, в решении сложных задач. На другом примере, но смысл тот же - тяжкое наследие Си.
тут есть один нюанс
я себя особо одаренным не считаю, но честно перечитал и так и не понял что имеется ввиду? О какой передаче фактического параметра идет речь, тут нет вызова. |
| Автор: RatHat 24.2.2010, 12:30 | ||
|
| Автор: azesmcar 24.2.2010, 13:28 |
а на компиляторе visual basic не пробовал? |
| Автор: mes 24.2.2010, 13:51 |
ну вообще- то принято ошибку сообщать, может она у Вас совсем не по теме, а может билдер в этом тожже не соответствует стандарту. вместо гцц можно воспользоваться http://codepad.org, вот пример : http://codepad.org/1T7C1BOK о Билдер у нас стал гарантом правильности ?! |
| Автор: W4FhLF 24.2.2010, 14:00 |
| RatHat, вот чего ты споришь я не пойму? Ты был неправ, признай это и не вводи людей в заблуждение. |
| Автор: mes 24.2.2010, 14:16 |
| странный призыв |
| Автор: W4FhLF 24.2.2010, 15:22 |
| mes, очепятка. Был пьян, обещаю исправиться! |
| Автор: RatHat 24.2.2010, 18:10 |
| W4FhLF, а почему, собственно, я был неправ? Я выдал свой вариант видения проблемы - я думал, человек провтыкал передачу значения в конструктор. Если речь в итоге шла конкретно о вызове конструктора посредством передачи именно самого типа, а не значения, то это не было указано в изначальном условии. Там вообще просто сказано: "a2 не выводит ничего". Вы поняли вопрос так, я понял иначе. И всё. В итоге после того, как я предложил этот вариант решения проблемы (передать значение в конструктор), на меня начали гнать, типа я тупой. Извините, значит грамотно задавайте вопросы. |
| Автор: azesmcar 24.2.2010, 18:25 | ||||
Ты можешь передать конструктору тип?
вот этот код даже C++ Builder откомпилирует. Это передача значения а не типа, а гнать никто не начинал, просто не надо "на пальцах" пытаться обьяснять опытным людям неправильные вещи и предлагать обучиться русскому языку, если твой вариант справедливо сочли ошибочным. В ошибках нет ничего постыдного, на них учаться, но для этого как минимум надо научиться их признавать. |
| Автор: RatHat 24.2.2010, 18:46 |
| azesmcar, спасибо за внятное объяснение, этого я не знал, если честно. А тут ни у кого кроме тебя не хватило чего-то для того, чтобы сразу указать на этот нюанс. Ошибки я признавать умею, если мне их объясняют. Сочли ошибочным - не вопрос. Но ведь никто(кроме тебя, спасибо тебе большое еще раз) не снизошёл до того, чтобы объяснить, правда ? А начали цепляться к словам - так не вопрос, я так тоже умею. |
| Автор: mes 24.2.2010, 19:25 | ||||||||||||||||||||||||
я так понял это камень в мой огород, ну я могу напомнить как все было. Вы предположили что
на что получили ответ :
после написали то,
смысл которого я не понял о чем и сообщил : на что получил вызывающий ответ, не основанной ни на какой предшествующей аргументации :
в ответ Вы получили уточнение насчет передачи :
пример, показывающий где Ваше заблуждение :
и попытка была помочь разобраться в вопросе, но для этого требовалось понять, что именно Вы подразумеваете :
ну и лишь в конце показал, что на каждую ехидную шутку можно получить ответ, и специально выделил смайлом оффтопа, чтоб в дальнейшем не отклоняться от темы :
продолжение следует Добавлено @ 19:38 в ответ появился некий оффтопик не очень приятной тонации :
на что получили замечание о неприятности, и мое видение сказанного, также была попытка призвать к возвращению в русло темы :
После опять попзтался вернуться к вашей проблеме, и выявить место вашего заблуждения [quote]
ответа на этот вопрос, заметьте который нужен был не мне, а , имхо, Вам, так и не было получено и после еше нескольких незначительных и спадаюших по пылу выпадов, я получаю : Или может я чего то не правильно вижу иль не заметил ? тогда прошу ту цитату на стол. |
| Автор: fear 24.2.2010, 21:13 |
| думаю, по текущему вопросу все ясно и дабы увести всех от бесполезного флуда, предлагаю обсудить не менее интересную задачу |