gpt4 book ai didi

c++ - operator<< 用于嵌套类

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:09 24 4
gpt4 key购买 nike

我正在尝试为嵌套类 ArticleIterator 重载 << 运算符。

// ...
class ArticleContainer {
public:
class ArticleIterator {
// ...
friend ostream& operator<<(ostream& out, const ArticleIterator& artit);
};
// ...
};

如果我像往常一样定义运算符<<,我会收到编译器错误。

friend ostream& operator<<(ostream& out, const ArticleContainer::ArticleIterator& artit) {

错误是在类外使用了'friend'。我该如何解决这个问题?

最佳答案

定义函数时不要放置 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";
}

关于c++ - operator<< 用于嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com