#include <iostream>
using namespace std;
class B{
public:
void f(){
cout << "in B::f()..." << endl;
}
};
class D1:public B{};
class D2:private B{
public:
void g(){
cout << "in D2::g(), calling f()..." << endl;
f();//私有继承时,基类接口在子类成员函数中可以使用
}
};
int main(){
cout << "in main()..." << endl;
D1 obj1;
cout << "calling obj1.f()..." << endl;
obj1.f();//基类接口成为子类接口的一部分,子类对象可调用
D2 obj2;
cout << "calling obj2.g()..." << endl;
obj2.g();
//obj2.f();//基类接口不许子类对象调用
//obj2.g().f();//这个也是错的
return 0;
}
MOOC清华《面向对象程序设计》第4章:基类与派生类的继承权限实验
最新推荐文章于 2021-01-18 16:56:01 发布