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

Перегрузка бинарного оператора << в template классе - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
NoWar
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
12.12.2010, 17:00     Перегрузка бинарного оператора << в template классе #1
Помогите пожалйста люди! не получается перегрузить оператор >> и << в шаблонном классе выдает ошибку:
error C2804: бинарный 'operator <<' имеет слишком много параметров
если пишу friend тогда компилятор ругается на неразрешенный символ.
P.S компилятор VS 2008 помогите плз вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T> class Sum:public Symbol<T> 
{
public:
 
     //istream & operator >> (istream&, Sum<T>&) ;
    ostream&  operator << (ostream&, const Sum<T>&);//ВОТ ОБЪЯВЛЕНИЕ!
};
template <class T>  ostream & operator << (ostream &os,const Sum<T> &s)// ВОТ ОПЕРДЕЛЕНИЕ
{
...............
................
..................
        return os;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 17:00     Перегрузка бинарного оператора << в template классе
Посмотрите здесь:

C++ Перегрузка бинарного оператора
C++ Перегрузка оператора ==, в классе Матрица
Перегрузка бинарного оператора + C++
Перегрузка оператора индексации в одном классе и использование в другом C++
Перегрузка оператора вывода в классе "Время" C++
Перегрузка бинарного оператора + C++
Перегрузка оператора '=' в классе C++
Перегрузка дружественного оператора вывода в шаблонном классе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.12.2010, 21:01     Перегрузка бинарного оператора << в template классе #2
Вроде работает.
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
#include <iostream>
 
using namespace std;
 
template <class T> class Sum
{
public:
        T i;
        Sum(void) {};
        Sum(T a) { i = a; }
 
        friend ostream& operator<< (ostream& o, const Sum<T> &s)
        {
                o << s.i;
                return o;
        }
};
 
int main()
{
        Sum<int> S(1);
        cout << S << endl;
        return 0;
}
NoWar
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
12.12.2010, 22:19  [ТС]     Перегрузка бинарного оператора << в template классе #3
Спасибо большое!Буду занать теперь насчет френдов
Yandex
Объявления
12.12.2010, 22:19     Перегрузка бинарного оператора << в template классе
Ответ Создать тему
Опции темы

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