《面向对象程序设计》第四章 类与对象的构造设计(4.4)类中类用法

4.4类中类用法 在类定义中,有时需要用抽象数据类型,类对象嵌套也是通常使用的形式。这里讨论的 是类中类和类属类问题,重点是一个类的内部对象的初始化问题。 4.4.1类对象作为成员 在C++中,对于作为成员的类对象,必须说明成员对象的初始化 例4.7以其他类的对象作为数据成员构造新类的实例EX4_7CPP 4.4.2类的自引用 C++的类包含了指向自己的特殊指针ths(自引用)。Ths是一个隐含指针,类的成员 函数自动将指针this传递给对象,从而产生成员函数的调用动作 例如:ob, funcO, 函数 funco自动将this传递给ob,ob产生函数调用。 This指针是指向成员函数所属类定义的对象。因此,用this可指向该类的不同对象不同 成员。这是程序在类范围中可以用简写形式的原因。但应该清楚其隐含的实际操作。 一般地,this是由编译器自动产生、使用的。设计人员也使用它,可引用到对象的任何 成员(非静态成员),this指针有多种用途。在缺省状态下,所有成员函数都自动传递一个 指针给激活它的对象。 [例4.7a]使用this指针的实例EX47aCPP。 4.4.3类属类( generic class) 当一个类包含有通用的逻辑算法时,定义一个类属类,即是定义这个类的所有算法。而 实际操作数据的类型是在创建类对象时,以参数形式指定的 说明类属类的一般格式为: template class class name( / Itype是临时类型名 下面的程序定义了一个类属链表类,然后生成一个字符链表,说明该类的算法。 例4.8]类属类的使用实例EX48CPP 如果在创建lst对象时改变指定的数据类型,就可以改变表中存储的数据类型,例如: listint start(1) 用户也可以用list存放自己定义的数据类型
4.4 类中类用法 在类定义中,有时需要用抽象数据类型,类对象嵌套也是通常使用的形式。这里讨论的 是类中类和类属类问题,重点是一个类的内部对象的初始化问题。 4.4.1 类对象作为成员 在 C++中,对于作为成员的类对象,必须说明成员对象的初始化。 [例 4.7] 以其他类的对象作为数据成员构造新类的实例 EX4_7.CPP 4.4.2 类的自引用 C++的类包含了指向自己的特殊指针 this(自引用)。This 是一个隐含指针,类的成员 函数自动将指针 this 传递给对象,从而产生成员函数的调用动作。 例如:ob.func(); 函数 func()自动将 this 传递给 ob,ob 产生函数调用。 This 指针是指向成员函数所属类定义的对象。因此,用 this 可指向该类的不同对象不同 成员。这是程序在类范围中可以用简写形式的原因。但应该清楚其隐含的实际操作。 一般地,this 是由编译器自动产生、使用的。设计人员也使用它,可引用到对象的任何 成员(非静态成员),this 指针有多种用途。在缺省状态下,所有成员函数都自动传递一个 指针给激活它的对象。 [例 4.7a] 使用 this 指针的实例 EX4_7a.CPP。 4.4.3 类属类(generic class) 当一个类包含有通用的逻辑算法时,定义一个类属类,即是定义这个类的所有算法。而 实际操作数据的类型是在创建类对象时,以参数形式指定的。 说明类属类的一般格式为: template class class_name{ . . . }//Ttype 是临时类型名 下面的程序定义了一个类属链表类,然后生成一个字符链表,说明该类的算法。 [例 4.8] 类属类的使用实例 EX4_8.CPP 如果在创建 list 对象时改变指定的数据类型,就可以改变表中存储的数据类型,例如: listint_start(1); 用户也可以用 list 存放自己定义的数据类型
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象程序设计》第四章 类与对象的构造设计(4.3)类构造的存储设计.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.2)构造函数和析构函数.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.1)类的构造和创建.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.4)利用类库中虚函数进行多态程序设计.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.3)纯虚函数与同一协议的多版本.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.2)虚函数方法与多态机制.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.1)重载与程序的多态性设计.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.3)自定义的操纵算子.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.2)创建内核流.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.1)创建文件流.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.5)赋值兼容规则.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.4)继承性应用实例分析.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.3)多重继承的设计.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.2)基类和派生类.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.1)类层次、数据抽象和模块化.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.6)输入输出流简介.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.5)C++的语句及程序流程控制.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.4)C++的运算符和表达式.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.3)C++数据类型.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.2)C++程序构架及词法符号约定.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.5)类与对象的进一步用法.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.6)类与结构、联合的关系.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.8)指向类成员的指针.doc
- 荆州职院:《平面广告设计》第二章 平面广告市场调查.ppt
- 荆州职院:《平面广告设计》第一章 序言.ppt
- 荆州职院:《平面广告设计》第四章 平面广告的创意及表现.ppt
- 荆州职院:《平面广告设计》第五章 平面广告设计的表现技法.ppt
- 荆州职院:《平面广告设计》第六章 平面广告的编排设计.ppt
- 荆州职院:《平面广告设计》第七章 平面广告分类设计法则.ppt
- 荆州职院:《平面广告设计》电子教案.doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(二).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(三).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(一).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(四).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(八).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(五).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(七).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(六).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题参考答案(一).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_试题B.doc