C++/3种继承方式测试

#include<iostream>
//template<class T> 
using namespace std;
class father{
char data;
father(char data){
this->data=data;
}
public :father(){//private编译不通过,禁止继承和实例化 

}
father(const father& c){

}
~father(){

}
public :void publicprint(){
cout<<data;
}
private: void privateprint(){
cout<<data;
}
protected: void protectedprint(){
cout<<data;
}
}; 
class publicson:public father{
public :publicson(){//(默认)构造函数为私有的话,编译报错、无法构造 
publicprint();
//privateprint();// 无法访问父类私有方法。of course 
protectedprint(); 
}
};
class privateson:private father{
public: privateson(){
publicprint();
//privateprint(); //只对这个由报错。继承方式只对外部有作用,只有在实例访问是起作用。 
protectedprint();

};
class protectson:protected father{
public: protectson(){
publicprint();
privateprint();//就是上边的结果,private、protected,public继承方式只对实例起访问控制。 
protectedprint();

};
int main(){
publicson ps;
ps.publicprint();
//访问控制private、protected 只有自己定义内部可以访问 
//ps.privateprint();
//ps.protectedprint();


privateson is;
//全部成为son的private部分
//是无法通过对象访问的 
//is.publicprint();
//is.privateprint();
//is.protectedprint();

protectson ts;
//以实例的角度,private,protected 继承是没有区别的 
//ts.publicprint();
//ts.privateprint();
//ts.protectedprint(); 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值