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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
NoWar
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
#1

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

12.12.2010, 17:00. Просмотров 2649. Ответов 2
Метки нет (Все метки)

Помогите пожалйста люди! не получается перегрузить оператор >> и << в шаблонном классе выдает ошибку:
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 17:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка бинарного оператора << в template классе (C++):

Перегрузка бинарного оператора + - C++
Выдает ошибку: Ошибка 2 error LNK1120: неразрешенных внешних элементов: 1 Main\Debug\Main.exe 1 Ошибка 1 error LNK2019: ссылка на...

Перегрузка бинарного оператора - C++
Хочу чтобы в моей программе знак &quot;%&quot; работал, как знак операция сложения действительных чисел &quot;+&quot;. Где ошибка #include &lt;cstdlib&gt; ...

Перегрузка бинарного оператора + - C++
Добрый вечер! В последнее время мне не удаётся перегрузить оператор +, чтобы он поэлементно складывал одномерные массивы двух классов. ...

Перегрузка оператора '=' в классе - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using std::cout; using std::endl; class CMessage { public: ...

Перегрузка оператора ==, в классе Матрица - C++
#ifndef MATRIX_H #define MATRIX_H template &lt;class T&gt; class Matrix { public: Matrix(int Rows, int Cols); ~Matrix(); ...

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

2
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
12.12.2010, 21:01 #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;
}
0
NoWar
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
12.12.2010, 22:19  [ТС] #3
Спасибо большое!Буду занать теперь насчет френдов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 22:19
Привет! Вот еще темы с ответами:

Перегрузка оператора operator+() в пользовательском классе (сложение строк) - C++
Хотел научить класс складывать строки, но на моменте освобождения памяти temp происходит ошибка. Поля класса: char* Str, int length...

Перегрузка оператора индексации в одном классе и использование в другом - C++
Вообщем проблема состоит в том, что не понимаю как это сделать. Есть класс Document в нем есть вектор vec состоящий из Item'ов. В классе...

Перегрузка оператора сложения в классе выдает ошибку с деструктором - C++
Здравствуйте, взял у Липманна программу, которую по заданию надо доработать. Ее смысл заключается в том, что объект класса (динамическая...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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