链家网 青岛:请指点一下这段C++的片段哪个地方有问题?

来源:百度文库 编辑:中科新闻网 时间:2024/05/12 17:59:01
class A
{ void f1(){……}
protected:
void f2(){……}
public:
void f3(){……}
};

class B:public A
{ A a;
public:
void f1(){a.f1();a.f2();a.f3();}
void f4(){ f1();f2();f3();}
};
……
B b;
b.f1();
b.f2();
b.f3();
……

B以public方式继承A类
所以 在void f1()中就不能访问A类中的f1()和f2()
为什么f1()也不可以呢,因为类默认为private的
所以出错误了。

class B 继承的class A 的f2()函数只能在其子类中访问,如果在其他类中访问需要重新定义一下,定义为public 才能在class B外的类中访问.