类的三种成员与继承

Posted dajunjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的三种成员与继承相关的知识,希望对你有一定的参考价值。

对于类而言,一共有三种成员类型,分别为private,protected,public.
其中,如果数据成员的类型为private,可以默认不写。
对于在类外使用的情况,private和protected是一致的,均不可以由外部直接访问,而public所包含的成员是可以由外部直接访问的。下面给出一个基本的例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Time 
{
private:
int hour;
int minute;
protected:
int second;
public:
Time(); //构造函数
showtime();
get_hour();
};

int main() //测试函数
{
Time A;
A.showtime(); //调用了公有成员,合法
cout<<A.hour; //调用了私有成员,不合法
cout<<A.second; //调用了保护成员,不合法
A.get_hour(); //调用了公有成员,合法
return 0;
}

而对于私有成员和保护成员的区别,需要在继承的时候才能体现出来

类的继承类型

通过基类派生出新类的过程称为类的继承,类的继承同样也有private,public,protected三种形式。现在分述如下:

public继承

该种继承方式下,满足如下表格:

基类中的访问限定 派生类对基类成员的限定 外部函数访问
public public 可直接访问
protected protected 不可直接访问
private 不可直接访问 不可直接访问

请注意,基类中的protected类型是可以在派生类中直接访问的

private继承

该种继承方式下,满足如下表格:

基类中的访问限定 派生类对基类成员的限定 外部函数访问
public private 不可直接访问
protected private 不可直接访问
private 不可直接访问 不可直接访问

这里相当于将基类的所有成员变成了派生类的私有成员

protected继承

该种继承方式下,满足如下表格:

基类中的访问限定 派生类对基类成员的限定 外部函数访问
public protected 不可直接访问
protected protected 不可直接访问
private 不可直接访问 不可直接访问

结合上述过程可以看出,private类型和protected类型在派生类中的区别,即protected类型是一种外部无法直接调用,但可以由派生类直接调用的成员类型

原文:大专栏  类的三种成员与继承


以上是关于类的三种成员与继承的主要内容,如果未能解决你的问题,请参考以下文章

子类继承基类的三种继承方式

零基础学Java—this关键字的三种用法+Java继承的三个特点(二十一)

C++多继承

c++继承是如何工作的?

C++继承:公有,私有,保护

Java继承