|
Модераторы: bsa |
|
neosapient |
|
||||
Опытный Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Здравствуйте.
Допустим есть класс Кот, который умеет играть play() с цифрами и словами.
Надо создать класс Пса так, чтобы, не внося изменения в код класса Кота, класс Кота начал взаимодействовать с классом Пса. Т.е. компилятор увидел play() в классе Пса и посчитал этот метод play() перегрузкой других методов в классе Кота.
Преобразовывать Пса к типу int или string запрещено. Может это можно сделать как то через определение friend? Ссылка на код https://ideone.com/4tM429 |
||||
|
|||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Сделать шаблонную функцию play у кота, которая будет получать пса в качестве шаблонного аргумента. Технически код класса не измениться, но фактически в коде исполняемого файла появиться новая функция умеющая работать с собаками.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
neosapient |
|
|||
Опытный Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Alexeis, спасибо.
Переделал класс кота следующим образом:
Работает. https://ideone.com/Z6Ws92 |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |