对于类而言,一共有三种成员类型,分别为private,protected,public.
其中,如果数据成员的类型为private,可以默认不写。
对于在类外使用的情况,private和protected是一致的,均不可以由外部直接访问,而public所包含的成员是可以由外部直接访问的。下面给出一个基本的例子。
12345678910111213141516171819202122 |
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类型是一种外部无法直接调用,但可以由派生类直接调用的成员类型。
原文地址:https://www.cnblogs.com/dajunjun/p/11642953.html
时间: 2025-01-15 02:14:33