gpt4 book ai didi

c++ - 访问匿名子对象 C++ (cout)

转载 作者:太空狗 更新时间:2023-10-29 20:58:34 24 4
gpt4 key购买 nike

class Parent
{
...
friend ostream& operator<<(ostream&, const Parent&);
};

class Child : public Parent
{
...
friend ostream& operator<<(ostream&, const Child&);
};

ostream& operator<< (ostream& os, const Parent& p)
{
os << ... ;
return os;
}

ostream& operator<< (ostream& os, const Child& c)
{
os << c.Parent << ... ; // can't I access the subobject on this way?
return os;
}

如何在子运算符中调用父运算符?那只是给我错误“Parent::Parent 的无效使用”

最佳答案

c.Parent不是有效语法,你的 operator<< 也不是一个成员函数。要调用正确的重载,请更改 c 的上下文:

ostream& operator<<(ostream& os, const Child& c)
{
os << static_cast<const Parent&>(c);
return os;
}

关于c++ - 访问匿名子对象 C++ (cout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358973/

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