继承方式

6.1 不管公有继承 保护 还是私有 基类中的私有属性 ,都不可以继承下去
6.2 公有继承
6.2.1 父类中的protected 在子类中是 protected
6.2.2 父类中的public 在子类中是 public
6.3 保护继承
6.3.1 父类中的protected 在子类中是 protected
6.3.2 父类中的public 在子类中是 protected
6.4 私有继承
6.4.1 父类中的protected 在子类中是 private
6.4.2 父类中的public 在子类中是 private
public.cpp

class Base1
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C;
};

//公有继承
class Son1 : public Base1
{
public:
	void func()
	{
		//cout << m_C << endl; //基类中私有的属性 不可继承
		cout << m_A << endl; //基类中公有的属性 可继承,还是public
		cout << m_B << endl;//基类中保护的属性 可继承,还是protected 类外访问不到
	}

};

void test01() {
	Son1 s1;
	s1.m_A;
	//s1.m_B;
}

protected.cpp

class Base2
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C;
};

class Son2 :protected Base2
{
public:
	void func()
	{
		//cout << m_C << endl; //基类中私有的属性 不可继承
		cout << m_A << endl;//基类中公有的属性 可继承,是protected
		cout << m_B << endl;//基类中保护的属性 可继承,是protected
	}

};

void test01() {
	//Son2 s;
	//s.m_A; 不能访问
}

private.cpp

class Base3
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C;
};

class Son3 :private Base3
{
public:
	void func()
	{
		//cout << m_C << endl; //基类中私有的属性 不可继承
		cout << m_A << endl; //基类中公有的属性 可继承,是private
		cout << m_B << endl;//基类中保护的属性 可继承,是private
	}
};

class GrandSon3 :public Son3
{
public:
	void myFunc()
	{
		//cout << m_A << endl; //孙子类中 访问不到 m_A,因为在Son3中m_A已经是私有属性了
	}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值