- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 类与对象的基本概念
另外,C++中允许同属一个类的两个对象之间相互赋值。 ob1 = ob2; 会将对象ob2的所有数据成员的值完全复制到对象ob1的相应成员中去。 但是在有些情况下,对象间的相互赋值存在着潜在的危险。比如,类中包含有指针类型的数据成员时,对象的整体赋值会使两个不同对象中的指针成员指向同一内存空间,使用时须非常小心。 3.4 构造函数的定义 构造函数是在类中声明的一种特殊的成员函数,作用是在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的状态。 构造函数的名字与它所属的类名相同,被声明为公有函数,且没有任何类型的返回值,在创建对象时被自动调用。 构造函数作为类的一个成员函数,具有一般成员函数所有的特性,它可以访问类的所有数据成员,可以是内联函数,可以带有参数表,还可以带默认的形参值。构造函数也可以重载,以提供初始化类对象的不同方法。 每个类都必须有构造函数,若类定义时没有定义任何构造函数,编译器会自动生成一个不带参数的缺省构造函数,其形式如下: 类名 ::缺省构造函数名 ( ) { //... } 缺省构造函数名与类名相同。 3.5 对象数组 数组的元素可以是基本类型的数据,也可以是用户自定义类型的数据,对象数组就是指数组元素为对象的数组。对象数组中的各个元素必须是属于同一个类的若干对象。 对象数组的定义和使用与一般数组类似。不同的是,对象数组的每个元素都是对象,其中不仅包含数据成员,还包含有成员函数。所以,对象数组的使用有其特殊之处。 声明对象数组的一般形式如下: 类名 数组名[下标表达式] … 其中,类名指出该对象数组元素所属的类;[下标表达式] 给出数组的维数和大小。例如,声明语句 myclass obs[10]; 定义了一个一维的对象数组obs,该数组有10个元素,每个元素都是myclass类的对象。 又例如: myclass obs2[3][5]; 表明obs2是一个二维对象数组,包含15个属于myclass类的对象。 声明了对象数组之后,就可以引用其数组元素。该数组元素是一个对象,故只能访问其公有成员。引用数组元素的一般形式如下: 数组名[下标].公有成员名 例如: obs[6]. set_a(60); cout obs[3]. get_a(60); 对象数组允许被赋初值,也允许被赋值。 3.6 类 的 组 合 在现实世界中,我们解决复杂的问题时,通常采用将其层层分解为简单问题的方法。即可将一个复杂的问题分解为几个较简单的子问题描述出来,而这些子问题又可以进一步分解,由更简单的子问题来描述。这样,只要这些最基本、最简单的子问题得以描述和解决,由它们构成的复杂问题就迎刃而解了。 同样的思想可应用于面向对象的程序设计方法中。确定一个对象的内部结构可能是很困难的一件事,但我们可以通过将复杂对象层层分解为若干简单的“部件”对象的组合,然后再由这些易于描述和实现的部件对象来“装配”复杂对象。 C++中允许将一个已定义的类的对象作为另一个类的数据成员,这称之为类的组合。即类可以将其它类对象作为自己的成员,形成一种包含和被包含的关系。例如: Class A { private: … public: … }; Class B { private: A a; … public: … }; 其中,B类中的数据成员a就是一个A类的对象,称之为对象成员。 在定义一个类时,其数据成员既可以是简单类型,又可以是自定义类型,还可以是类的对象。这样,我们定义类时,就可以利用已定义的类来构成新类,由若干结构简单、易于实现的类来构造复杂的类。这种类似于部件组装的方法,不仅简化了问题的描述,而且有利于提高软件的开发效率,也是软件复用的一种形式。 3.7
文档评论(0)