我的問題與一個this有關。模板定義中的朋友函數
我想重載操作< <一些類和我發現了兩個不同的符號,這兩個工作:
template <class T>
class A{
T t;
public:
A(T init) : t(init){}
friend ostream& operator<< <> (ostream &os, const A<T> &a); //need forward declaration
//template <class U> friend ostream& operator<< (ostream &os, const A<U> &a);
};
難道我定義具有不同的符號一樣的東西?或者是第一個更嚴格的版本,在哪個實例中(在這種情況下,只有與我的A類相同T的實例)< <是A的朋友?
幾件事。首先,我認爲你的意思是'os << b.t'而不是'os << b.i'來輸出擁有的成員變量。其次,上面的例子可以使用operator << instance,因爲它使用的是'ostreame&operator <<(ostream&os,double num)'函數,而不是聲明的模板版本。 – workmad3 2010-01-16 10:03:35
我的頭似乎在其他地方 - 但在平均時間修復它。 – 2010-01-16 10:04:48