我正在尝试为嵌套类ArticleIterator重载< <运算符。运算符<<用于嵌套类
// ...
class ArticleContainer {
public:
class ArticleIterator {
// ...
friend ostream& operator<<(ostream& out, const ArticleIterator& artit);
};
// ...
};
如果我定义操作< <像我通常做,我得到一个编译错误。
friend ostream& operator<<(ostream& out, const ArticleContainer::ArticleIterator& artit) {
错误是'friend' used outside of class
。我该如何解决?
想起来了,这不是关于声明和定义。你可以在类里面定义好朋友,你可以在没有friend关键字的情况下在类之外重新声明函数。我认为这是关于特定声明出现的位置 - 朋友说明符只能应用于类定义中词法上的函数声明 – 2010-10-25 14:18:08