- 1、本文档共102页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《面向对象技术与Visual C++》--第3章 补充内容1 类与对象 本章主要内容 类 对象 构造函数和析构函数 静态成员 友元 1.1类 从语言角度来说,类是一种新的数据类型,而对象是具有这种类型的变量。 类定义就是对同类对象的属性和行为进行统一描述。属性用数据表示,行为用函数表示。类中定义的数据称为数据成员,定义的函数则称为成员函数。数据和函数统一称为类成员。 类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐蔽。 1.1.1类定义 类定义一般分为说明部分和实现部分。说明部分是说明该类中的成员,实现部分是对成员函数的定义。 类定义的一般格式如下 1.1.2访问控制 访问权限有三种类型:private、public和protected。 三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 公有类型成员 在关键字public后面声明,它们是类与外部的接口,可以被程序中任何代码访问。 私有类型成员 在关键字private后面声明,只允许本类中的函数及友元访问,而其他的函数不能访问。 如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。 保护类型成员 在关键字protected后面声明,能被本类成员函数,派生类成员函数和友元访问,其他函数无法访问。 1.1.3成员函数的实现 成员函数是类中描述行为的成员,同时也是对封装的数据进行操作的惟一途径。 类定义的格式中,一般在类中说明成员函数原型,在类外进行成员函数的具体实现,各个成员函数的定义是类的实现部分。同时,如果成员函数已经在类中定义,则不需要在类外实现。需要注意的是,在类中定义的成员函数自动成为内联函数。 若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的,其定义格式如下: 1.2对象 对象的定义格式与普通变量相同。定义格式如下: 1.2.2类成员的访问 定义了类及其对象,就可以通过对象来使用其公有成员,从而达到对对象内部属性的访问和修改。 对象对其成员的访问有圆点访问形式和指针访问形式。 1.3构造函数和析构函数 1.3.1构造函数 构造函数的功能是在定义对象时被编译系统自动调用来创建对象并初始化对象。 其定义格式如下: 构造函数的特点 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 构造函数的函数名与类名相同,且不指定返回值类型,它有隐含的返回值,该值由编译系统内部使用。 构造函数可以没有参数,也可以有参数,因此可以重载,即可以定义参数不同的多个构造函数。 每个类都必须有一个构造函数。如果类中没有显式定义构造函数,则编译系统自动生成一个缺省形式的构造函数,作为该类的公有成员。 程序中不能直接调用构造函数,在定义对象时编译系统自动调用构造函数。 如果显式定义了构造函数,则默认构造函数将不存在。 1.3.2析构函数 析构函数的功能是在对象的生存期即将结束的时刻,由编译系统自动调用来完成一些清理工作。它的调用完成之后,对象也就消失了,相应的内存空间也被释放。 析构函数也是类的一个公有成员函数,它的名称是由类名前面加“~”构成,也不指定返回值类型。和构造函数不同的是,析构函数不能有参数,因此不能重载。 其定义格式如下: 析构函数的特点 析构函数是成员函数,函数体可写在类体内,也可以写在类体外。 析构函数的函数名与类名相同,并在前面加“~”字符,用来与构造函数加以区别。析构函数不指定返回值类型。 析构函数没有参数,因此不能重载。一个类中只能定义一个析构函数。 每个类都必须有一个析构函数。如果类中没有显式定义析构函数,则编译系统自动生成一个缺省形式的析构函数,作为该类的公有成员。 析构函数在对象生存期结束前由编译系统自动调用。 1.3.3拷贝构造函数 拷贝构造函数是一种特殊的构造函数,它的功能是用一个已知的对象来初始化一个被定义的同类的对象。 拷贝构造函数的定义格式如下: 拷贝构造函数的特点 拷贝构造函数是成员函数,函数体可写在类体内,也可以写在类体外。 拷贝构造函数名与类名相同,并且也不指定返回值类型。 拷贝构造函数只有一个参数,并且是对同类对象的引用。 每个类都必须有一个拷贝构造函数。如果类中没有显式定义拷贝构造函数,则编译系统自动生成一个缺省形式的拷贝构造函数,作为该类的公有成员。 1.4静态成员 静态成员是解决同一个类的不同对象之间的数据和函数共享问题。 静态数据成员 用关键字static声明 该类的所有对象维护该成员的同一个拷贝 必须进行初始化,用(::)来指明所属的类。 静态成员函数 类外代码可以使用类名和作用域操作符来调用静态成员函数。 静态成员函数可以直接访问属于该类的静态数据和函数成
文档评论(0)