Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
#1

Перегрузка операторов для наследованных классов - C++

06.03.2013, 12:34. Просмотров 553. Ответов 3
Метки нет (Все метки)

Есть один класс, для него определена операция сложения.
Есть так же наследованный класс для него работает операция сложения определенная для класса родителя, но у наследованного класса есть дополнительные параметры, которые тоже должны изменятся.
Можно перегрузить операцию сложения и для наследованного класса, но это не оптимально, т.к. по сути операция сложения делает тоже самое что и для класса родителя и еще кое что.
Но не переписывать же все операторы по 2 раза для класса и наследованного класса.
Как поступить чтобы наиболее оптимально определить и для наследованного класса операцию сложения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 12:34     Перегрузка операторов для наследованных классов
Посмотрите здесь:

Перегрузка операторов для классов C++
Перегрузка операторов для класса матриц C++
Перегрузка операторов для класса МАССИВ C++
C++ Перегрузка операторов для list
C++ Перегрузка операторов для класса
C++ Перегрузка операторов не для объектов
Шаблоны классов, перегрузка операторов C++
C++ Идентификация наследованных классов
Перегрузка операторов для класса polynom C++
Перегрузка операторов для работы со стеком C++
Перегрузка операторов для списков C++
Перегрузка операторов для работы с матрицами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
06.03.2013, 12:48     Перегрузка операторов для наследованных классов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Parent 
{
     ....
    Parent& operator+(const Parent& _other) { ... };
};
 
class Successor: public Parent
{
    ....
    Successor& operator+(const Successor& _other)
    {
        Parent::operator+(_other);  // вызываем operator+ суперкласса
        // тут уже сделаны нужные действия для суперкласса....
 
        // а тут теперь добавляем какие-то специфичные для наследника действия...
    }
}
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
06.03.2013, 12:51  [ТС]     Перегрузка операторов для наследованных классов #3
Спасибо
т.е. если операторов скажем перегружено штук 10, то все равно придется их все перегружать и для дочернего класса хоть и таким облегченным способом.
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
06.03.2013, 13:23     Перегрузка операторов для наследованных классов #4
Да. Потому что родительский класс ничего не "знает" о тех членах, которые появились только в наследниках.
Yandex
Объявления
06.03.2013, 13:23     Перегрузка операторов для наследованных классов
Ответ Создать тему
Опции темы

Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru