C++之将成员变量声明为private(22)---《Effective C++》
来源:互联网 发布:spring aop 面试 知乎 编辑:程序博客网 时间:2024/06/05 07:14
条款22:将成员变量声明为private
C++中我们需要将成员变量声明为private,我们指导访问权限有public、private和protected,为什么我们要选择使用成员变量声明为private呢?
如果使用public的话,任何外部函数或者外部类都可以访问它,使得整个类体系变得超级脆弱,外部的变化超容易对体系造成致命的攻击,所以许多成员变量应该被隐藏起来,通过public函数接口访问。
通过对成员变量对类进行封装,通过函数访问成员变量,将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性,例如这可使得成员变量被堵或者备些时候轻松通知其他对象、可以验证class的约束条件以及函数的前提和时候状态,同时可以确保class的约束条件总是会获得维护,因为只有成员函数可以影响它们,同时你也保留了日后变更代码的权利。
protected成员变量主要用于类的继承体系中,那么它的封装性怎样呢?实际比public成员变量的封装性还要差一些,public成员变量变更的时候,类中的很多部分会被破坏,那么protected呢?将破坏的更多,包括本类和子类中的代码。
总结:
1、请将成员变量声明为private,这可赋予用户访问数据的一致性、可细微划分访问控制、允诺约束条件获得保证,并提供class作者以充分的实现弹性;
2、protected并不比public更具封装性。
阅读全文
0 0
- Effective C++:条款22:将成员变量声明为private
- C++之将成员变量声明为private(22)---《Effective C++》
- 《Effective C++》学习笔记条款22 将成员变量声明为private
- Effective C++——》条款22:将成员变量声明为private
- 读书笔记《Effective C++》条款22:将成员变量声明为private
- 将成员变量声明为private和用非成员、非友友提高封装性(Effective C++_22、23))
- Effective C++ Item 22 将成员变量声明为private
- [翻译] Effective C++, 3rd Edition, Item 22: 将 data members(数据成员)声明为 private
- effective c++ 将成员变量声明为private
- 《Effect C++》学习------条款22:将成员变量声明为private
- Effective C++ 读书笔记 条款22:将成员变量声明为private
- item22: 将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22:将成员变量声明为private
- 条款22、将成员变量声明为private
- RequestMappingHandlerAdapter源码讲解
- IntelliJ Idea 2017 免费激活方法
- 设计模式-创建型模式总结
- 异或 ^ 的几个作用
- ssh连接提示 "Connection closed by remote host"
- C++之将成员变量声明为private(22)---《Effective C++》
- unity的学习----NavMeshAgent,自动寻路
- 使用递归来实现删除单链表中最后一个节点不是数字‘2’
- Notification初识
- SSH Secure Shell Client使用方法
- 用C语言模拟实现通讯录的文件版本
- 浅谈Kotlin(一)
- Nginx+Tomcat实现负载均衡
- AtCoder Grand Contest 018