C++学习——继承和多态

目录

一:继承访问权限

二:友元类继承

三:多态性综合运用

3.1一般性多态

3.2特殊多态性函数

 3.3析构函数的多态性

 3.4多继承


一:继承访问权限

        继承是类的重要特性。A类继承B类,我们称B类为“基类”,A为“子类”,继承有三种方式,分别为公有继承方式(public),保护继承(protected)和私有继承(private)。

        在公有继承方式中基类的私有成员,子类不可以访问;基类的保护成员,子类可以继承为自己的保护成员,在外部不可以访问;基类的公有成员,子类可以继承为自己的公有成员,在外部也可以访问。

        在保护继承方式中基类公有成员,子类中继承为自己的保护成员,在外部不可以访问;基类保护成员,子类中继承为自己的保护成员,在外部不可以访问;基类私有成员,子类一样不可以访问基类的私有成员。

        在私有继承方式中基类公有成员,子类中继承为自己的私有成员,在外部不可以访问;基类保护成员,子类中继承为自己的私有成员,在外部不可以访问;基类私有成员,子类一样不可以访问基类的私有成员。

        下图也清晰的表达了继承的各种关系

 现在来进行测试:

首先是A具有public, protected, private等变量

class A
{
public:
	int A_1;
protected:
	int A_2;
private:
	int A_3;
};

然后是B1,B2,B3分别以public, protected, private方式继承A

class B1: public A
{
public:
	void test() 
	{
		A_1 = 10;
		A_2 = 10;
		//A_3 = 10; 无法访问
	}
	int B1_1;
protected:
	int B1_2;
private:
	int B1_3;
};
class B2: protected A
{
public:
	void test()
	{
		A_1 = 10;
		A_2 = 10;
		//A_3 = 10; 无法访问
	}
	int B2_1;
protected:
	int B2_2;
private:
	int B2_3;
};
class B3 : private A
{
public:
	using A::A_1;
	void test()
	{
		A_1 = 10;
		A_2 = 10;
		//A_3 = 10; 无法访问
	}
	int B3_1;
protected:
	int B3_2;
private:
	int B3_3;
};

在上面代码可以发现对于子类无法访问基类的私有变量。接下来看在外部的访问情况,讲解会在代码的注释上面

void test1()
{
	A a;
	a.A_1=10;
	//a.A_2; a.A_3 A类的protected和private
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值