继承的三种方式及其应用案例 c++ 简单易懂

#include<iostream>//c++标准的输入和输出流
using namespace std;//引用标准的名空间std
class person
{
public:int m_age;
private:string m_lover;
protected:string m_car;
};
class son1 :public person 
{
	void func()
	{
		m_age = 10;//公共权限 类内类外都可以访问
		m_car = "daben";//保护权限,在类内可以访问,在类外不可以访问
		//m_lover = "lisa";//报错,父类的私有权限即使在
		//公共继承下子类也是不可以访问的
	}

};
class son2 :protected person
{
	void func()
	{
		m_age = 10;//公共权限,在保护继承下变成了保护权限
		m_car = "lisi";//保护权限在保护继承下也是保护权限
		//注意保护权限在类内可以访问,在类外是不可以被访问的
}//而公共权限在类内和类外都可以被访问
	//而私有权限在类内和类外都不可以被访问
};
class son3 :private person
{
public:
	void func()
	{
		m_age = 10;
		m_car = "jo";//在私有继承的继承方式下,所有的属性、
		//变成了私有的,他的儿子是都不可以访问的
	}
};
class grandson3 :public son3
{
	void func()
	{
		//m_age = 10;
		//m_car = "kji";

	}
};
void test01()
{
	son1 p1; p1.m_age = 10; //p1.m_car = "ni"; p1.m_lover = "lsi";
	//被注释掉的都是不可以访问的
	son2 p; //p.m_age = 10; p.m_car = "ni"; p.m_lover = "lsi";
	son3 p3;
}
int main(void)
{
	test01();

}
/*总结:
//父类中公共的属性按照公共的方式继承该属性也是公共的(在类内和类外都允许访问)
//父类中公共的属性按照保护和私人的继承方式的属性不是公共的
//按照保护继承的方式继承下的属性实在子类的类内中可以访问的
//该属性变成看受保护的,但是该属性在类内允许访问
//但是按照私有的方式继承下的属性在子类的类内中时不允许访问的
//该属性已经变成私有的了(在类内也不允许访问)
//并且父类中受保护的属性按照公共的方式继承该属性仍然时protected

//简单来讲就是:
	//只有父类中私有的属性在子类的类内和类外读不允许访问
	//并且只有子类继承下来的公共的属性既可以在类内访问
	//又可以在类外访问
*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值