【发布时间】:2011-12-11 13:42:39
【问题描述】:
我有以下几点:
using namespace std;
template<class T> class olsm;
template<class T> istream& operator>>(istream& in, olsm<T>& x);
template<class T> ostream& operator<<(ostream& out, olsm<T>& x);
template <class T>
class olsm {
friend istream& operator>> <> (istream& in, olsm& x);
friend ostream& operator<< <> (ostream& out, olsm& x);
public:
class node {
public:
};
///Other stuff
};
////More stuff
template<class T>
ostream& operator<<(ostream& out, olsm<T>& x) {
olsm<T>::node* rowNode = x;
//Even more stuff!
return out;
}
但是当我尝试编译时,我得到了,
error: 'rowNode' was not declared in this scope
这很奇怪,因为我在尝试声明它的行上遇到了错误。有谁知道为什么?
【问题讨论】:
-
我认为这条线行不通——想想你在做什么,将一个对象分配给一个指针。
标签: c++ compiler-errors operator-overloading friend