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

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

Восстановить пароль Регистрация
 
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
01.03.2014, 03:38     Перегрузить операцию сложения в базовом классе, который имеет два наследника #1
Как перегрузить операцию сложения в базовом классе, который имеет два наследника(объекты которых как раз и надо сложить)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2014, 03:38     Перегрузить операцию сложения в базовом классе, который имеет два наследника
Посмотрите здесь:

C++ Перегрузить операцию сложения для класса дробей
Найти ошибку и перегрузить операцию C++
C++ Указатель на потомка в базовом классе.
Помогите перегрузить операцию присваивания C++
C++ В классе string перегрузить операцию вчитания
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nabrosokHD
 Аватар для nabrosokHD
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 5
01.03.2014, 08:48     Перегрузить операцию сложения в базовом классе, который имеет два наследника #2
Если я правильно понял, то нужно описать оператор сложения для ваших классов.

Например, есть класс number в котором имеются три числа a, b, c. Сложим два класса типа number
C++
1
2
3
4
5
6
7
8
number number::operator+(const number &num)
{
    number N;
    N.a=a+num.a;
    N.b=b+num.b;
    N.c=c+num.c;
    return N;
}
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
01.03.2014, 16:44  [ТС]     Перегрузить операцию сложения в базовом классе, который имеет два наследника #3
nabrosokHD,

ну вот в одном классе возвращают тип инт

C++
1
2
3
4
5
6
int C_StringBit :: BitInvert(char* p) {
  int new1;
  new1 = strtol(p, NULL, 2);
  cout << new1 << endl;
  return new1;
 }
и в другом
C++
1
2
3
4
5
6
int C_StringHex :: HexInvert(char* p) {
  int new1;
  new1 = strtol(p, NULL, 2);
  cout << new1 << endl;
  return new1;
 }
и вот как в таком случае сложить два инта из разных классов? как в таком случае перегрузить оператор?

Добавлено через 6 минут
правда, класс у меня абстрактный...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.03.2014, 21:12     Перегрузить операцию сложения в базовом классе, который имеет два наследника #4
Делайте дружественную, для двух классов, функцию.
Yandex
Объявления
01.03.2014, 21:12     Перегрузить операцию сложения в базовом классе, который имеет два наследника
Ответ Создать тему
Опции темы

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