gpt4 book ai didi

c++ - 如何为 pimpl 类重载 ostream operator<<?

转载 作者:太空狗 更新时间:2023-10-29 23:46:34 25 4
gpt4 key购买 nike

这是我到目前为止尝试过的:

class Fahrzeug
{
public:

std::string Id() const;
void Id(const std::string &id);

friend std::ostream& operator<< (std::ostream &out, const Fahrzeug &fzg)
{
out << Id();
return out;
}

private:
struct DatenImpl;
boost::scoped_ptr<DatenImpl> _datenImpl;
};

这会产生一个编译器错误:

error C2352: Id() - illegal call of non-static member function

我如何为“疙瘩”类实现 ostream 运算符<<?

最佳答案

你的定义应该是:

friend std::ostream& operator<< (std::ostream &out, const Fahrzeug &fzg)
{
out << fzg.Id(); // <--- qualify call to Id()
return out;
}

尽管在 class 中定义,但运算符不是 class 成员。

关于c++ - 如何为 pimpl 类重载 ostream operator<<?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384506/

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