4
我有一個需要訪問其專用字段的類模板和運營商模板。我可以做一個模板朋友:運營商的朋友特定模板實例化
template <typename T>
class A {
int x;
template <typename U>
friend bool operator==(const A<U>& a, const A<U>& b);
};
template <typename T>
bool operator== (const A<T>& a, const A<T>& b) {
return a.x == b.x;
}
int main() {
A<int> x, y;
x == y;
return 0;
}
但有可能僅使operator==<T>
的朋友A<T>
,而不是使operator==<int>
朋友A<double>
?
似乎並沒有工作http://ideone.com/vnu3QR – RiaD
這不是一個編譯器錯誤。有些地方的語法是有效的,但這不是其中之一。 –
@AlanStokes,好吧,是的,這個語法在這裏完全有效。你爲什麼不試試自己?只需在課程前加上'operator =='即可。 – ixSci