运算符<<对于嵌套类
我正在尝试超载 <<嵌套类 ArticleIterator 的运算符。
// ...
class ArticleContainer {
public:
class ArticleIterator {
// ...
friend ostream& operator<<(ostream& out, const ArticleIterator& artit);
};
// ...
};
如果我定义运算符<<就像我通常做的那样,我收到编译器错误。
friend ostream& operator<<(ostream& out, const ArticleContainer::ArticleIterator& artit) {
错误是在课堂外使用了“friend”
。我该如何解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
定义函数时不要添加
friend
关键字,仅在声明函数时才添加。You don't put the
friend
keyword when defining the function, only when declaring it.您必须在类内将其声明为友元,然后在类外定义它(不使用friend 关键字)。
You must declare it as a friend inside the class, then define it outside the class without the friend keyword.
在声明中使用friend关键字来指定该函数/类是友元。在类外部的定义中,您不能使用该关键字。只需将其删除即可
the friend keyword is used in the declaration to specify that this func/class is a friend. In the definition outside the class you may not use that keyword. Just remove it