这篇文章主要介绍了C++控制权限关键字protected,protected和private类似,而对于派生类来说,protected与public类似,下面来一起俩姐更多详细内容吧,需要的小伙伴可以参考一下
文章转自公众号:Coder梁(ID:Coder_LT)
关键字protected与private相似,在类外只能用公有类成员来访问protected成员。只有在派生的时候,private和protected关键字才能体现出差异来,派生类的成员可以直接访问基类的保护成员,但不能直接访问基类的私有成员。因此对于类外部来说,protected和private类似,而对于派生类来说,protected与public类似。
比如类Human类将name成员设置为protected:
class Human {
protected:
string name;
...
};在这种情况下它的派生类Hero可以直接访问name,而不需要使用Human中的方法:
class Hero: public Human {
void show() {
cout << name << endl;
}
};使用protected关键字在一些情况下可以简化代码的编写工作,但也会存在一些设计缺陷。比如有的时候,有些变量值我们也不希望派生类能够直接修改。
void Hero::modify(const string& n) {
name = n;
}比如原本name名字是初始化之后不允许修改的,但由于它被定义成了protected,所以在派生类当中可以随意修改,这显然违背了我们的设计初衷。
针对这种情况,比较好的做法是将所有的数据成员都设置成private。但是可以将一些特殊的方法设置成protected,这样既可以允许派生类调用这些protected的方法得到便利,又不会过度开放权限导致敏感数据被篡改。
到此这篇关于C++控制权限关键字protected的文章就介绍到这了,更多相关C++protected关键字内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:C++控制权限关键字protected
- C语言详解float类型在内存中的存储方式 2023-03-27
- C++ 数据结构超详细讲解顺序表 2023-03-25
- Qt计时器使用方法详解 2023-05-30
- C语言qsort()函数的使用方法详解 2023-04-26
- ubuntu下C/C++获取剩余内存 2023-09-18
- Easyx实现扫雷游戏 2023-02-06
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- C语言手把手带你掌握带头双向循环链表 2023-04-03
