c与面向对象编程ppt课件.ppt

c与面向对象编程ppt课件.ppt

ID:58886697

大小:278.00 KB

页数:78页

时间:2020-09-30

c与面向对象编程ppt课件.ppt_第1页
c与面向对象编程ppt课件.ppt_第2页
c与面向对象编程ppt课件.ppt_第3页
c与面向对象编程ppt课件.ppt_第4页
c与面向对象编程ppt课件.ppt_第5页
资源描述:

《c与面向对象编程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章类和对象7.1类的定义7.1.1类定义格式类的定义分为说明和实现两个部分。类说明部分是用来声明该类中的成员。类的成员包括数据成员和函数成员。其中,函数成员又称成员函数或“方法”,用于对数据成员进行各种操作。类实现部分用来对成员函数进行定义。即说明部分告诉类要“干什么”,实现部分告诉类“怎么干”。1.类说明部分类说明部分一般格式如下:class类名{private:(或缺省时)数据成员声明或函数成员的原型;protected:数据成员声明或函数成员的原型;public:数据成员声明或函数成员的原型;};2.类实现部分类的实现部分,包括所有在类体中说

2、明的成员函数的定义。成员函数的定义通常在类定义体之外给出,其中每个成员函数定义格式为:返回值类型类名::成员函数名(<参数表>){…//函数体}类的成员函数在类外部定义时,前面必须加上“类名::”,以说明所定义的函数是哪一个类的成员。“::”称为作用域运算符。封装性来自对类成员的访问控制权限。在C++中,类的成员从访问权限上分为私有(private)、公有(public)和保护(protected)三类。私有成员通常是一些数据成员。private权限为类带来了封装性,它使私有成员隐藏起来,不能从类的外部对它们进行访问,或者说它们从类外部是不可见的,只有

3、类自己的成员函数才可以访问它们。公有成员往往是一些操作(即成员函数),可在程序中类的外部访问它们,它们是类的对外接口。3.类封装和数据隐藏例:点类Point的定义classPoint{private:doublex,y;public:voidSetPoint(doublex,doubley);doubleGetX();doubleGetY();voidPrint();};voidPoint::SetPoint(doublea,doubleb)//定义成员函数SetPoint(){x=a;y=b;}doublePoint::GetX()//定义成员函数G

4、etX(){returnx;}doublePoint::GetY()//定义成员函数GetY(){returny;}voidPoint::Print()//定义成员函数Print(){cout<<”X=”<

5、面,可以自动获得缺省访问控制权限private。类中的数据成员可以是任何数据类型。例如整型、浮点型、字符型、数组、指针和引用等,但不能用自动(auto)、寄存器(register)或外部的(extern)进行说明。类的数据成员也可以是其它类的对象。但应注意:a. 类自身的对象不能作为类的成员;b. 指向类自身的对象指针或引用可以作为类的成员。不能在类的说明部分给类的数据成员赋初值,例如在点类的定义中,下面的定义是错的:ClassPoint{intx=0,y=0;public:┆};一般习惯性地将类定义的说明部分或者整个定义部分(包括实现部分)放到一个头

6、文件中,例如,将前面定义的点类Point的定义部分放在point.h文件中。7.1.2成员函数的定义类的成员函数,又称类方法,用来描述类的行为,是对封装的数据进行操作的唯一途径。本质上,成员函数是程序算法的实现载体。(1)内联函数内联函数是特殊的C++函数,类似于宏指令,它直接在调用处插入函数体中的代码,而不进行一般函数的调用操作。引入内联函数,既能得到宏指令代码重用、不增加时间开销的优点,又能避免宏指令的变元替换可能引起的副作用。在程序中通常对重复调用次数多且代码较短的函数定义为内联函数。内联函数用关键字inline说明,一般格式为:inline返回

7、值类型函数名(〈参数表〉)用关键字inline说明的内联函数称为显式定义的内联函数。在许多情况下内联函数是隐式定义的。如在一个类定义体中定义的成员函数,自动成为内联函数,不须用inline说明。(2)成员函数定义为内联函数成员函数的定义通常采用两种方式。第一种方式是在类定义的说明部分只给出成员函数的原型,成员函数体在类的外部,即类的实现部分定义。第二种方式是将成员函数定义在类体内,即定义为内联函数。例:定义一个复数类,所有成员函数都在类体中定义。classComplex{doublereal;doubleimage;public:voidSetReal

8、Image(doubler,doublei){real=r;image=i;}doubleGe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。