面向对象 —— 类设计(八)
私有成员与全局函数
- 根据信息局部化的原则,局部使用的功能(或者更浅薄的理解为只被当前类的其他成员函数调用的,被使用的场合单一)不应定义为全局函数。
成员变量与成员函数
(1)思考:成员变量是一个类得以成立的前提,一个类应该持有哪些成员变量,应当首先考虑,这个类的设计的目的是什么。成员函数又分为私有成员函数,和公有成员函数,私有成员函数因为无法被外部调用,故设计的唯一目的是服务于公有成员函数,分担和减轻公有成员函数的负担,而公有成员函数自然是交由客户端调用,故公有成员函数设计的初衷在于我们希望在客户端以如何简洁的方式进行调用。
(2)成员变量:为该类的全部成员函数共享,在全部的成员函数内部传递,所谓传递的含义即为:get/set/update …
类与访问修饰符
类,及标识其作用范围(scope)的{
}
实现了(成员)变量和(成员)函数的局部(类内)可见性(visibility)。而访问修饰符又控制着成员在类间(继承关系)中的可见性。“我希望被谁看到,我不希望被谁看到”。归根结底,从某种意义上说,类及标识其作用范围的 {}
以及访问修饰符实现了或控制着访问权限,或称其为可见性。
约定俗成
- (1)在一个类中,不同的成员函数在处理同一事项上的代码逻辑应保持一致;
面向对象 —— 类设计(八)相关推荐
- 面向对象——类设计(五)
面向对象--类设计(一) 面向对象--类设计(二) 面向对象--类设计(三) 面向对象--类设计(四) (1)约定:私有成员函数:以下划线开头,_:公有成员函数则不必: 设计顺序 类首先是对成员变量的 ...
- 面向对象——类设计(二)
面向对象--类设计(一) 拷贝构造函数 拷贝构造函数(copy ctor)和拷贝赋值(copy assignment)操作符: 编译器创建的版本只是单纯地将来源对象的每一个non-static成员变量 ...
- 面向对象 —— 类设计(九) —— 类设计的内在一致性
类设计的内在一致性,可以理解为"逻辑一致性".所谓逻辑一致性,比如说,网络上流传甚广的"俗话说,俗话又说"系列,"宰相肚里"vs " ...
- 面向对象——类设计(六)——算法类
对于一个基于面向对象的数据聚类的基础类库(Class Library)而言,算法类(Algorithm,这里特指聚类算法 clustering algorithms)的设计是必不可少的一环. 聚类算法 ...
- 面向对象 —— 类设计(十二)—— 全局变量和成员变量
全局变量和成员变量都提供了一种共享和通信机制: 只不过成员变量的共享和通信仅限于类内部,全局变量则是全局可见: 更为重要的是,类的访问修饰符概念为成员变量的访问和修改施加了更多的限制,也即在面向对象的 ...
- 面向对象——类设计(一)
如果一个类将自己的成员变量声明为protected,则该类很有可能作为多态基类 一个类的成员变量一般不声明为public(如果非声明为public不可的话,使用struct岂不是更好),而protec ...
- 面向对象 —— 类设计(十)—— 成员函数
注意区别同名成员函数接口所属的类类型: BinNodePosi(T) BinNode<T>::insertAsLC(const T&); BinNodePosi(T) BinTre ...
- 面向对象——类设计(七)
定义(definition)即类.类间关系 (1)A cluster is a collection of objects or records that share the same propert ...
- 面向对象 —— 类设计(十一)—— 构造与析构
1. 构造函数 构造函数的形式参数:表达的是该对象成立的前提,也即依赖(对象成立依赖于那些其他对象) 构造函数的功能 完成成员变量的初始化工作: 构造函数的分类 默认构造 基于复制的构造
最新文章
- mysql 5.6 innodb_MYSQL 5.6中禁用INNODB引擎
- 金融行业安全漏洞分析报告
- python相同key合并value_Python快速入门最需掌握的4个知识点
- 解题:POI 2004 String
- kpu 处理器_首轮融资即估值过亿,中科驭数用全新专用计算架构让芯片也能“私人订制”...
- 深入理解 JVM Class文件格式(九)
- apk android lite,APKPure Lite
- linux 内核 核心代码,8分钟掌握Linux内核分析的核心科技
- 当年一道python面试题的失利让我错过心仪公司,希望你不会
- P5057 [CQOI2006]简单题
- python读取svg转emf_玩玩矢量图标,SVG转换EMF
- 重装系统 重启计算机失败,一键重装系统win7后重启进入系统失败
- 教程篇(7.0) 03. FortiClient EMS配置和管理 ❀ FortiClient EMS ❀ Fortinet 网络安全专家 NSE 5
- 【自然语言处理】【对比学习】搞nlp还不懂对比学习,不会吧?快来了解下SimCLR
- 【数学建模学习④】飞行管理问题
- 【小白向】简单随意DIY你的U盘图标
- 鸽哒im即时通讯源码加教程
- Splitter Control for Dialog
- 线性代数(13)——向量空间、维度和四大子空间(下)
- 台式计算机找不到无线连接,我的win7台式机找不到无线网卡解决方法介绍