Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > шаблонный operator<<


Автор: rukudias 18.9.2008, 22:56
Привет Всем!
Код

#include<iostream>
using namespace std;
template <ostream & stream,class T>
ostream & operator<<(ostream & stream,T obj)
{
    stream<<obj.a;
    return stream;
}


class A
{
public :
    A()
    {
        a=0;
    }
    int a;
    };


void main()
{
    A s;
    cout<<s<<endl;
    
}


КАк сделать чтоб работало?

Автор: IKM2007 18.9.2008, 23:01
Код

#include<iostream>
using namespace std;
template <class T>
ostream & operator<<(ostream & stream,T &obj)
{
   return stream<<obj.a<<endl;
}
class A
{
public :
    A()
    {
        a=0;
    }
    int a;
    };


void main()
{
    A s;
    cout<<s<<endl;
}

Автор: rukudias 18.9.2008, 23:09
Респкт и уважуха! 
smile 

Автор: UnrealMan 19.9.2008, 02:17
Цитата(rukudias @  18.9.2008,  23:56 Найти цитируемый пост)
КАк сделать чтоб работало? 

Это слишком общая перегрузка, с такой ты можешь поиметь кучу проблем. Например,

Код

char s[] = "text";
std::cout << s << std::endl;

работать перестанет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)