C++ 访问匿名子对象C++;(库特) 类父类 { ... friend ostream&operator

C++ 访问匿名子对象C++;(库特) 类父类 { ... friend ostream&operator,c++,polymorphism,subobject,C++,Polymorphism,Subobject,c.Parent不是有效语法,您的operatoros@PiotrS也不是。请回答这个问题。 class Parent { ... friend ostream& operator<<(ostream&, const Parent&); }; class Child : public Parent { ... friend ostream& operator<<(ostream&, const Ch

c.Parent
不是有效语法,您的
operator
os@PiotrS也不是。请回答这个问题。
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;
}
ostream& operator<<(ostream& os, const Child& c)
{
    os << static_cast<const Parent&>(c);
    return os;
}