![]() |
|
Модераторы: Daevaorn Страницы: (9) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну вот вопрос про overloading . В каком случае я могу иметь две функции с одним именем и одинаковым набором парамеметров, но с разным типом возвращаемого результата? И почему этот случай не противоречит выше процитированному определению? ( последний вопрос задается факультативно Добавлено @ 20:48
Вообще это мой факультативный вопрос, который я задаю при первом правильном ответе на первый вопрос -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| J0ker |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
тока в одном - если они в разных неймспейсах либо в разных юнитах и имеют внутренний линкейдж - проще говоря, не видят друг друга тип возвращаемого параметра не входит в сигнатуру
потому, что заданое вами условие не блещет полнотой |
||||
|
|||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Для простоты( хотя это уже подсказка ) это два метода одного класса, имеющие одинаковое название, одинаковый набор ( формально в объявлении -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
кажется я чувствую о чем речь. Когда у одного из методов прараметр this константный ? только это точно не коректный вопрос.
противоречит. Это сообщение отредактировал(а) mes - 12.11.2008, 21:02 |
|||
|
||||
| Alek86 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
ну, то уже другой вопрос. я отвечал именно на
такое может сказать любой опытный программист, которому просто не приходило в голову засесть за зубрежку терминов это, кстати и ответ на вопрос |
||||
|
|||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Чем? Методы класса map
Кстати на него отвечали относительно легко, а кто читал Страуструпа в первом издании и помнил о первом скрытом параметре отвечали и на второй. Примерно так бы эти методы выглядели после обработки препроцессором в старинном компиляторе, который назывался "С with classes" , если на том момент кто-нибудь решил реализовать константность метода
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
если ты про шаблоны, то это тоже некорректный вопрос ибо параметр является частью сигнатуры Добавлено через 1 минуту и 28 секунд а, таки про константность... |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
То есть, если у Вы будете строить иерархию классов, которые не используют полморфизм, но знаете, что в некоторых производных потребуется некоторая модификация их поведения относительно реализации в производном классе, Вы методы сделаете виртуальными? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
непонял, что это был вопрос никак наскока я понимаю |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
но при этом надо было хорошо выделить, слово формально
ибо опытные люди сразу вместо "имеющие одинаковое название, одинаковый набор параметров" обычно подставляют слово "сигнатура" Добавлено через 1 минуту и 46 секунд Vyacheslav, а зачем делать иерархию классов без полиморфизма? без полиморфизма делаются только наследники от вектора (чтобы потом через полгода на эту чудо-"иерархию" материться) |
|||
|
||||
| J0ker |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
тем, что скрытый параметр является параметром, а константность параметра - и как следствие объявление метода const - входит в сигнатуру такшо можете вычеркнуть сей вопрос - он некоректен |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
кстати, для этого очень подойдет агрегация, а не наследование
и это, кстати, во всех тех книжках пишется "если класс НЕ ЯВЛЯЕТСЯ другим классом а только очень похож и меняет некоторое поведение - используйте агрегацию" Добавлено через 33 секунды J0ker, там главное слово - ФОРМАЛЬНО я тоже не заметил |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
не может ибо тут ошибка не в терминологии, а в принципе невиртуальные функции-члены переопределяются ничем не хуже виртуальных |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
J0ker, ты не ответил на вопрос - как в терминологии называется переопределение вирт функций? ибо я, к примеру, не знаю. и называю переопределением именно переопределение вирт функций (странно, но меня при этом все понимают
|
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
То есть это Вы не заметили? И странные у Вас опытные люди: обычные методы не переопределяют, о виртуальных функциях могут мыслить только в терминах наличия-отсутствия таблиц виртуальных функция, а одинаковый набор параметров сразу же переводят в сигнатуру. Кстати о птичках, формулировку overloading в таком виде давал не я. Я ею только воспользовался. Добавлено через 2 минуты и 45 секунд Еще вопрос о виртуальных функциях Можно ли виртуальный деструктор базового класса объявить чистым? И если можно, как сделать, чтобы производные от этого не пострадали? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |