- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 类和对象(一)
第三章 类和对象(一); 类构成了实现C++面向对象程序设计的基础,在C++面向对象程序设计中占据着核心地位。对象把数据和作用在这些数据上的操作组合在一起,是封装的基本单元。对象是类的实例,类定义了属于该类的所有对象的共同特性。
从一般意义上讲,对象(Object)是现实世界中的客观事物。类是把具有相同属性的事物划分为一类,从而得出的抽象概念。类是一组性质相同的对象的程序描述,它由概括了一组对象共同性质的数据和函数组成。
面向对象的程序设计中最基本的概念是对象,一般意义上的对象指的是一个实体的实例,在这个实体中包括了特定的数据和对这些数据进行操作的函数。对象的核心概念就是通常所说的“封装性”(encapsulation)、“继承性”(inheritance)和“多态性”(polymorphism)。
;§3.1 类的构成; C语言中的结构存在一些缺点。例如,一旦建立了一个结构变量,就可以在结构体外直 接修改数据。可见,在C结构 中的数据是很不安全的,C结构无法对数据进行保护和权限控制。C结构中的数据与对这些 数据进行的操作是分离的,没有把这些相关的数据和操作(通常用函数实现)构成一个整体 进行封装,因此使程序的复杂性很难控制,维护数据和处理数据要化费很大的精力,使传统 程序难以重用,严重影响了软件的生产效库。
在C++中,引入了类的概念,它能克服C结构的这些缺点。C++语言中的类将数据和与 之相关的函数封装在一起,形成一个整体,具有良好的外部接口,可以防止数据未经授权的 访问,提供了模块间的独立性。;类的构成
类的构成:类名、数据成员与成员函数
按访问权限分为:三类(public,private与protected)
类的定义
class类名{
[private]:
私有数据成员和成员函数;
pulbic:
公有数据成员和成员函数;
protected:
保护数据成员和成员函数;
};
;其中,class是定义类的关键字。类名是一个标识符,用于惟一标识一个类。一对大括号内是类的说明部分,说明该类的所有成员。上面的结构改写为类的形式为:
class Date{
public:
void setDate(int y,int m,int d);
void showDate();
private:
int year;
int month;
int day;
};
声明了一个类Date,封装了有关数据和对这些数据操作,分别称为类Date的数据成员和成员函数
;;§3.2 成员函数的声明;;说明:
在所定义的成员函数名之间缀上类名,在类名和函数名之间应加上分隔符“::”;
在定义成员函数时,对函数所带的参数,不但要说明它的类型,还要指出其参数名;
在定义成员函数时,其返回类型一定要与函数原型中声明的返回类型匹配;成员函数定义在类的内部,即定义为内置函数。其也有两种定义类的内置函数:
隐式定义,就是直接将函数定义在类的内部
显示定义,就是将其成员函数的定义定义在类的外部,但在成员函数定义前加上关键词“inline”,使其起到内置函数的作用
如
;;§3.3 对象的定义及引用;对象中成员的访问
对象对对象成员的引用,引用格式:
对象名.数据成员或对象名.成员函数(实参表)
#includeiostream.h
class Coord{
private:
int x,y;
public:
void setpoint(int a,int b)
{ x=a;y=b;}
int getx()
{ return x;}
int gety()
{ return y;}
};
;;指向对象的指针的成员表示如下:
对象指针名-成员名
或者
对象指针名-成员名(参数表)
前者用于表示数据成员,后者用于表示成员函数。这里的“-”是一个表示成员的运算符,它与前面介绍过的“.”运算符的区别是:“-”用来表示指向对象的指针的成员,而“.”用来表示一般对象的成员。
对于数据成员和成员函数,以下两种表示方式是等价的:
对象指针名-成员名
与
(*对象指针名).成员名
如接上例:Coord *op; op-setpoint(1,2)与(*op).setpoi
文档评论(0)