- 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)在函数名
您可能关注的文档
- 非企业法人变更申请书.doc
- 非全日制合同1.doc
- 非农整理.doc
- 非常不错的背景音乐整理清单.doc
- 非常批处理教程.doc
- 非标件设计流程.docx
- 非洲航线知识.doc
- 非物理专业《大学物理》课程教学中学科教育与人格教育的整合.docx
- 非形式逻辑与批判9.ppt
- 非物质文化遗产法.docx
- 中国国家标准 GB 42125.11-2025测量、控制和实验室用电气设备的安全要求 第11部分:用于处理医用材料的灭菌器和清洗消毒器的特殊要求.pdf
- 《GB 42125.11-2025测量、控制和实验室用电气设备的安全要求 第11部分:用于处理医用材料的灭菌器和清洗消毒器的特殊要求》.pdf
- 《GB/T 15237-2025术语工作及术语科学 词汇》.pdf
- GB/T 15237-2025术语工作及术语科学 词汇.pdf
- GB/T 22454-2025企业建模与体系结构 企业建模构件.pdf
- 中国国家标准 GB/T 15237-2025术语工作及术语科学 词汇.pdf
- 中国国家标准 GB/T 22454-2025企业建模与体系结构 企业建模构件.pdf
- 《GB/T 22454-2025企业建模与体系结构 企业建模构件》.pdf
- 中国国家标准 GB/T 18910.64-2025液晶显示器件 第6-4部分:测试方法 带动态背光的液晶显示模块.pdf
- 《GB/T 18910.64-2025液晶显示器件 第6-4部分:测试方法 带动态背光的液晶显示模块》.pdf
文档评论(0)