Pie*_*ter 4 c++ operator-overloading friend
我正在尝试为嵌套类ArticleIterator重载<<运算符.
// ...
class ArticleContainer {
public:
class ArticleIterator {
// ...
friend ostream& operator<<(ostream& out, const ArticleIterator& artit);
};
// ...
};
Run Code Online (Sandbox Code Playgroud)
如果我像我通常那样定义operator <<,那么我会遇到编译器错误.
friend ostream& operator<<(ostream& out, const ArticleContainer::ArticleIterator& artit) {
Run Code Online (Sandbox Code Playgroud)
错误是'friend' used outside of class.我该如何解决?
friend只有在声明函数时,才会在定义函数时放置关键字.
struct A
{
struct B
{
friend std::ostream& operator<<(std::ostream& os, const B& b);
};
};
std::ostream& operator<<(std::ostream& os, const A::B& b)
{
return os << "b";
}
Run Code Online (Sandbox Code Playgroud)