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

Полиморфизм, дружественные функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблон функции не работает http://www.cyberforum.ru/cpp-beginners/thread920843.html
В чем я допустил ошибку? Почему шаблон функции не работает? #include <iostream> using namespace std; template < typename O > O max( O number1, O number2 ) { O maxValue = number1; if (...
C++ Прикол с указателями взял пример с http://www.cplusplus.com/reference/algorithm/find/, немного поэксперементировал и наткнулся на необъяснимый факт) Смотрим: #include <iostream> // std::cout #include <algorithm> ... http://www.cyberforum.ru/cpp-beginners/thread920838.html
C++ Нужна помошь:выделение в тексте слов с заданной буквой
Необходима помощь в реализации одной задачи:Нужно вывести текст на экран из файла, и по нажатию произвольной клавиши поочередно выделяет в тексте слова с заданной буквой (вводится с клавиатуры);...
Быстрый поиск совершенных чисел C++
Чтобы легко можно было отсылать вопрошающих по этому вопросу, создаю новую тему. Напомню, что Совершенное число — натуральное число, равное сумме всех своих собственных делителей (т. е. всех...
C++ bool функция, нужен разбор http://www.cyberforum.ru/cpp-beginners/thread920795.html
bool not_url_char(char c) { static const string url_char="~,./?!@#$%^&*()_-+=;'"; return !(isalnum(c)||find(url_char.begin(), url_char.end(), c)!=url_char.end()); } Данная функция должна...
C++ Массив: Как скопировать двумерный массив в другой массив? Как скопировать двумерный массив в другой массив? подробнее

Показать сообщение отдельно
Hugo_Boss
1 / 1 / 0
Регистрация: 29.01.2013
Сообщений: 46

Полиморфизм, дружественные функции - C++

10.07.2013, 13:37. Просмотров 611. Ответов 11
Метки (Все метки)

Всем привет!

Имеется такая конструкция:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Base {
public:
  Base();
  Base(int n) {};
  virtual ~Base() {};
 
  const Base& operator+=(int n);
  friend Base operator+(Base &base, int n) {
    Base new_base(n);
    //... 
    new_base += base;
    return new_base;
  }
};
 
class Derive1 : public Base {
public:
  Derive1() {};
  Derive1(Derive1 &der) {};
  Derive1(int n) {};
  ~Derive1();
 
  const Derive1& operator+=(int n) {...};
private:
  int n;
};
 
class Derive2 : public Base {
  Derive2();
  Derive2(Derive2 &der) {};
  Derive2(int n) {};
  ~Derive2();
 
  const Derive2& operator+=(int n) {...};
private:
  int n;
};
Класс Base я делаю как интерфейс, и все общие методы я стремлюсь вынести именно в него. Вот я вынес в него оператор+.
Я хочу сделать что-то типа:

C++
1
2
3
4
Base base = ...;
Derive1 der1 = ...;
Derive2 der2 = ...;
base = der1 + der2;
Возможно так сделать?
В том виде, что я написал здесь, у меня выдается ошибка линковщика (неразрешенный внешний символ).

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