|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.12.2011, 20:57 | #1 |
Форумчанин
Регистрация: 08.05.2010
Сообщений: 177
|
Дополнение метода родительского объекта
Извиняюсь отношении заголовка, не об объекта, а класса. переводчик глючит
Сразу говорю, что не имею понятия не имею как это сделать, потому относительно изложения кода на форум не пишите. А теперь сама проблема. У меня появилась ситуация когда мне нужно дополнить метод предка возьмем скажем перегрузки оператора>. Наследуются кажется все перегруженные операторы кроме =. В предка идет сравнение по одному полю, а я бы хотел еще сделать чтобы отпрыск делал сравнения дополнительно еще по 2-м полям класса. Суть вопроса вроде изложил нормально. Буду признателен за ответы |
14.12.2011, 21:00 | #2 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Ну сделайте вашу функцию сравнения виртуальной, и переопределите ее в классе-наследнике.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
14.12.2011, 21:51 | #3 |
Форумчанин
Регистрация: 08.05.2010
Сообщений: 177
|
Переопределение это конечно хорошо, но не в том суть. Меня интересует как дополнить, ну если не оператор функцию то любой метод родительского класса в наследнике. Цель ООП не повторное переписывание кода, а повторное его использование ...
|
14.12.2011, 21:58 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Anubys
Меня интересует как дополнить, ну если не оператор функцию то любой метод родительского класса в наследнике для такого "дополнения" метод должен быть виртуальным. В наследнике вызываешь старый метод в виде base::method(...); ну или переходить на более другой язык программирования, например python, java, c#
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
14.12.2011, 22:03 | #5 |
Форумчанин
Регистрация: 08.05.2010
Сообщений: 177
|
Спасибо понял
|
14.12.2011, 22:10 | #6 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
для такого "дополнения" метод должен быть виртуальным.
Вообще-то не совсем так. Метод не обязательно должен быть виртуальным. Но тогда появляются некоторые ограничения, хотя в простых случаях можно и так использовать... struct Foo { void f(){} }; struct Bar : Foo { void f() { Foo::f(); } }; Bar b; b.f();
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# Вызов метода без создания объекта. Предотвращение изменения фокуса. | Colder M | Помощь студентам | 3 | 03.05.2011 23:42 |
Объявление метода внутри объекта JAVASCRIPt | Kasper1 | JavaScript, Ajax | 4 | 09.03.2011 09:50 |
Использование метода repaint() объекта класса JPanel | Alexcomeback | Общие вопросы по Java, Java SE, Kotlin | 1 | 31.10.2010 13:12 |
Передача метода объекта. | the_deer_one | Общие вопросы C/C++ | 8 | 09.09.2010 15:07 |
Присваивание объекту родительского класса объекта дочернего | Викдон | Общие вопросы Delphi | 0 | 07.02.2009 15:27 |