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

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

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

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

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

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

Перегрузка операторов для классов - C++
Определить класс описывающий вектор в пространстве. Для класса перегрузить префиксный унарный оператор. Написать программу в которой...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Шаблоны классов, перегрузка операторов - C++
Задание:Реализовать шаблон классов Array. Перегрузить операторы присваивания =, ввода >> и вывода << (предусмотреть обработку ошибок...

Идентификация наследованных классов - C++
есть небольшая иерархия классов типа: class Interface //абстрактный { public: static const int ID = 0; ... } class Base...

Перегрузка операторов для класса - C++
class A { private: size_t i; public: size_t i_get() { return i; } };

Перегрузка операторов для списков - C++
Как сделать перегрузку оператора умножить (оператор возвращает адрес первого элемента списка нового списка, который содержит общие элементы...

3
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,380
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+ суперкласса
        // тут уже сделаны нужные действия для суперкласса....
 
        // а тут теперь добавляем какие-то специфичные для наследника действия...
    }
}
1
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
06.03.2013, 12:51  [ТС] #3
Спасибо
т.е. если операторов скажем перегружено штук 10, то все равно придется их все перегружать и для дочернего класса хоть и таким облегченным способом.
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,380
06.03.2013, 13:23 #4
Да. Потому что родительский класс ничего не "знает" о тех членах, которые появились только в наследниках.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2013, 13:23
Привет! Вот еще темы с ответами:

Перегрузка операторов для контейнера - C++
Доброго времени суток. Просматривая STL, в ветке вектора наткнулся на такую интересную запись: vector<int> v1 = {45,85,68}; ...

Перегрузка операторов для list - C++
Как перегрузить операторы вывода в поток и доступа по индексу для list?

Перегрузка операторов не для объектов - C++
Можно ли так делать? Потому что в таком случае вызывается не мой оператор, а исключающее или, стандарнтое. Как и что сделать, чтобы...

Перегрузка операторов для работы с матрицами - C++
нужно перегрузить оператор + для сложения двух матриц. Всё сделал, и всё работет. class overload { private: int** arr; ...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
06.03.2013, 13:23
Ответ Создать тему
Опции темы

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