- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 类与对象的构造设计 本章的学习内容 学习和掌握类的定义方法和对象的创建方法。 学习和掌握类的成员访问权限控制方法。 学习和掌握构造函数与析构函数的用法 学习和掌握类的封装、可见性和引用的操作方法 了解结构体、联合体的面向对象特性和用法。 3.1 类的构造和对象的创建 3.1.1 类设计的基本原则 在面向对象的程序中,客观系统自然被描绘成一系列完全自治、封装的对象,并将这些对象划分成类,类定义了属于该类的所有对象的共同特征,它可作为生成对象的一种模板,使对象成为类的实例。 从整体功能层面谈类设计,有如下三条原则:·单一功能原则(Single Responsibility Principle) 一个class就其整体应该只提供单一的服务。如果一个class提供多样的服务,那么就应该把它拆分,反之,如果一个在概念上单一的功能却由几个class负责,这几个class应该合并。 ·开放/封闭原则(Open/Close Principle) 一个设计并实现好的类,应该对扩充开放,而对修改封闭。即,这个类应该是允许扩充的,但不允许修改。如果需要功能上的扩充,一般来说应该通过添加新类实现,而不是修改原类的代码。添加新类不单可以通过直接继承,也可以通过组合。 ·最小惊讶原则(Least Surprise Principle) 在重载函数或者用子类实现父类中的虚函数时,应该基本维持函数原来所期望的功能。 3.1.2 类和对象的定义方法 类定义的一般格式如下: class class_name { private: //私有成员 private variables and function; protected: //保护成员 protected variables and function; public: //公有成员 public variables and function;} object_list; 说明:(1)class_name是类名; (2)关键字public、private和protected是访问权 限修饰符,表示三种不同的访问权限。 (3)类的成员既可包括变量,又可包括函数。 (4) object_list为可选项,用户可在说明类之后, 根据需要再定义类的对象。例如: class_name object_list; 【例3.1】 类与对象的定义 #include iostream.hconst int SIZE=10;class stack //类名很重要{private: //私有成员部分 char stk[SIZE]; int tos;public: //公有成员部分 void init(); void push(char ch); char pop();}; // 初始化成员变量tos void stack :: init() { tos=0; } //把一个字符压入栈中 void stack :: push(char ch) {if(tos==SIZE) { coutStack is full.\n; return; }stk[tos]=ch;tos++; } // 弹出一个字符 char stack :: pop() { if (tos==0) { coutStack is empty.\n; return 0; } tos--; return stk[tos];} int main() { stack s1,s2; int i ;s1.init(); s2.init(); s1.push(a);s2.push(x);s1.push(b);s2.push(y); s1.push(‘c’);s2.push(‘z’);for(i=0;i3;i++) couts1.pop( )“\t”;for(i=0;i3;i++) couts2.pop( )“\t”;return 0;}运行结果: c b a z y x 3.1.3 成员函数的功能与定义方式 成员函数的功能和作用是:用于处理对象内部的数据, 实现对象的操作行为,为外部程序提供操作接口。 成员函数的定义方式有两种: (1)外置方式:成员函数的声明在类的说明体内,成员函数的定义则在类外。如上例。注意: (a)在函数名
您可能关注的文档
最近下载
- 国家安全论文2000字范文(精选5篇).docx VIP
- 用电检查员技能培训课件—三相四线计量装置错接线分析及操作.pptx
- 第24课 人民解放战争(课件)-【中职专用】《中国历史》.pptx
- 讲好红色故事传承红色精神红色革命故事学习PPT.pptx VIP
- 心理健康指导师考试题库及答案.doc VIP
- 电子基础培训介绍.pptx VIP
- 离心式压缩机培训PPT.pptx VIP
- 犯罪心理学大学校园故意杀人罪的分析以云南大学学生马加爵杀人案为例.pdf
- SLT 631.1-2025 水利水电工程单元工程施工质量验收标准 第1部分:土石方工程.docx
- 高考历史判断题练习及答案.docx VIP
文档评论(0)