C++关键字protected的作用详解

您所在的位置:网站首页 protect和protection有什么区别 C++关键字protected的作用详解

C++关键字protected的作用详解

2023-07-31 18:22| 来源: 网络整理| 查看: 265

类的访问权限

类的访问权限有三种:

public 公共权限: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问protected 保护权限: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问private 私有权限:只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问。

三种权限的区别:

public:可以被任意实体访问protected:只允许本类及子类的成员函数访问private:只允许本类的成员函数访问

 

继承

继承的方式有三种:

公共继承保护继承私有继承

继承后的属性变化:

使用private继承,基类的所有方法在子类中变为private;使用protected继承,将基类中public成员变为子类的protected成员,其它成员的访问权限不变;使用public继承,基类中的方法属性不发生改变;

 

保护成员的作用:

假如基类Base中有一个成员b,设计要求隐藏这个成员,但是在派生类的成员函数中又经常访问到。如何设计呢?

选择public,那么其安全性受到威胁。选择private,派生类无法访问这个数据,只能间接访问。

所以我们有了protected!像上述b这种,出于隐藏的目的不能设为公有public,但又需要在派生类的成员函数中经常访问到的基类成员,将它们设置为保护成员,既能起到隐藏的目的,又避免了派生类成员函数要访问它们时只能间接访问所带来的麻烦。

保护成员的可访问范围比私有成员大,比公有成员小。能访问私有成员的地方都能访问保护成员。

保护成员扩大的访问范围表现在:基类的保护成员可以在派生类的成员函数中被访问。

 

示例:

#include using namespace std; class Base{ public: int a; protected: int b; private: int c; }; class son:public Base{ void show(){ cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3