谁能帮忙解释一下下边注释的地方为什么错误?纠结很长时间了,这是c++ primer上的一道题。
struct Base
{
foo(int);
protected:
int bar;
double foo_bar;
};
struct Derived : public Base
{
foo(string);
bool bar(Base *pb);
void foobar();
protected:
string bar;
};
bool Derived::bar(Base *pb)
{
return foo_bar == pb->foo_bar;
//这里错误,通过指向Base类对象的指针访问其Protected的成员foo_bar错误,应将pb定义为指向子类Derived类对象的指针
}
慕的地10843
饮歌长啸
相关分类