【初心者歓迎】C/C++室 Ver.54【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0828デフォルトの名無しさん
2008/06/11(水) 01:37:31#include <iostream>
template < class T >
class test
{
friend std::ostream& operator<< ( std::ostream& os, test< T > t );
public:
void set( T val ) { x = val; }
private:
T x;
};
template < class T >
std::ostream& operator<< ( std::ostream& os, test< T > t )
{
os << t.x;
return os;
}
↑のようにfriend宣言したとき、
int main()
{
test< int > t;
t.set( 5 );
cout << t << endl;
}
とするとエラーが出るのですがなぜでしょう・・・。orz
テンプレートクラスでなければ問題なく動くのですが・・・。
■ このスレッドは過去ログ倉庫に格納されています