C++复习之路十一——类的继承

一、复习三种访问控制符

public:修饰的成员变量或者方法,可以在类的外部或者类的内部使用

private:修饰的成员变量或者方法,只能在类的内部使用,外部不能使用

protected:修饰的成员变量或者方法,只能在类的内部或者子类内部使用,不能在类的外部使用

这三种访问控制符可以修饰类的成员属性,同时在继承的时候也能够修饰其继承的方式

二、类的继承

通过继承联系在一起的类构成一种层次关系,通常在层次关系的根部有一个基类,其他类则是直接或者间接地从基类继承过来。

我们先来看一个继承的例子

class A
{
public:
	int a;
private:
	int b;
protected:
	int c;
public:
	void print();
};
class B : public A 
{
public:
	void printB();
};

从上面的例子我们可以看到A类里面有三个成员变量a,b, c,分别是public, private, protected的,还有一个public的成员函数。B类继承A类的方式是public的。

通过一些继承方式我们就可以在派生类中访问基类中成员。但是并不是所有的继承方式都是可以访问的,是否能够访问是由基类的访问控制符和继承方式决定的

三、三种继承方式的区别

我先将他们三者的区别用一个表格表示出来


 

 

原有的访问属性

 

public

private

protected

public

public

private

protected

private

private

private

private

protected

protected

private

protected

1、通过public方式继承的,原有的访问属性保持不变

①如果原有的访问属性是public ,那么我们就可以在类的内部或者外部访问基类的public成员

②如果原有的访问属性是private,那么我们将不能访问基类的private成员

③如果原有的访问属性是protected,那么我们可以在派生类的内部访问基类的protected成员,但是不能在类的外部访问它。

2、通过private方式继承的,所有的属性都变成了private。

①如果原有的访问属性是public ,那么我们可以在派生类的内部访问,但是不能再派生类的外部访问基类的成员

②如果原有的访问属性是private, 那么我们将不能访问基类的private成员。

③如果原有的访问属性是protected,那么我们可以在派生类的内部访问基类的protected成员,但是不能在类的外部访问它。

3、通过protected方式继承的,原理来的public变成了protected,private和protected都保持不变

①如果原有的访问属性是public ,那么我们可以在派生类的内部访问基类的public成员,但是不能在类的外部访问它

②如果原有的访问属性是private,那么我们将不能访问基类的private成员。

③如果原有的访问属性是protected,那么我们可以在派生类的内部访问基类的protected成员,但是不能在类的外部访问它。

【注意】以上说的访问都是直接访问

如果有错误,大家可以在评论里指出来。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值