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

Полиморфизм, дружественные функции - 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 ( number 2 > maxValue ) maxValue = number2;
C++ Прикол с указателями взял пример с http://www.cplusplus.com/reference/algorithm/find/, немного поэксперементировал и наткнулся на необъяснимый факт) Смотрим: #include <iostream> // std::cout #include <algorithm> // std::find #include <vector> // std::vector int main () { int *p1, *p2; // int p, *p1, *p2; int myints = { 10, 20, 30 ,40 }; p1 = std::find (myints,myints+4,30); http://www.cyberforum.ru/cpp-beginners/thread920838.html
C++ Нужна помошь:выделение в тексте слов с заданной буквой
Необходима помощь в реализации одной задачи:Нужно вывести текст на экран из файла, и по нажатию произвольной клавиши поочередно выделяет в тексте слова с заданной буквой (вводится с клавиатуры); выводит на экран дисплея ещё раз те слова, в которых нет заданной буквы.
Быстрый поиск совершенных чисел C++
Чтобы легко можно было отсылать вопрошающих по этому вопросу, создаю новую тему. Напомню, что Совершенное число — натуральное число, равное сумме всех своих собственных делителей (т. е. всех положительных делителей, отличных от самого́ числа). Доказано, что все четные совершенные числа имеют вид 2^{p-1}(2^p-1), где p и 2^p-1 простые. Нечётных совершенных чисел до сих пор не обнаружено, однако...
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()); } Данная функция должна возвратить true, если переданный символ не может содержаться в URL-адресе. Не могу понять, что значит строка: return !(isalnum(c)||find(url_char.begin(), url_char.end(), c)!=url_char.end()); В...
C++ Массив: Как скопировать двумерный массив в другой массив? Как скопировать двумерный массив в другой массив? подробнее

Показать сообщение отдельно
Hugo_Boss
1 / 1 / 0
Регистрация: 29.01.2013
Сообщений: 46
10.07.2013, 13:37     Полиморфизм, дружественные функции
Всем привет!

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

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;
Возможно так сделать?
В том виде, что я написал здесь, у меня выдается ошибка линковщика (неразрешенный внешний символ).

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