c++程序设计 陈圣国第3章.ppt

c++程序设计 陈圣国第3章.ppt

ID:50350128

大小:199.00 KB

页数:133页

时间:2020-03-08

c++程序设计 陈圣国第3章.ppt_第1页
c++程序设计 陈圣国第3章.ppt_第2页
c++程序设计 陈圣国第3章.ppt_第3页
c++程序设计 陈圣国第3章.ppt_第4页
c++程序设计 陈圣国第3章.ppt_第5页
资源描述:

《c++程序设计 陈圣国第3章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.1最简单的类定义3.2构造函数与析构函数3.3类的派生3.4友元3.5静态成员3.3类的派生返回主目录3.1最简单的类定义3.1.1类定义类和对象是C++语言中面向对象程序设计的最基本的概念。C语言与其它传统的过程化语言没有类与对象的概念,这些语言所写的程序通常采用函数或过程来描述对数据结构类型的操作,但又将函数及其操作的数据相分离,所写的程序完全依赖于数据的结构和形式。C++语言通过类将数据结构和与之相关的操作封装在一起,形成一个整体,具有良好的外部接口,可以防止对数据结构内部未经授权的访问,提供了程序模

2、块之间的独立性。本节首先介绍类定义的方式。下面是一个简单的类定义的例子。它定义了一个类Point,用来表示屏幕上的一个点,x、y坐标的有效范围分别为0~639、0~479:classPoint{intxVal,yVal;//x、y坐标public:voidSetPt(int,int);//设置x、y坐标voidOffsetPt(int,int);//点坐标移位运算intGetX();//读取x坐标intGetY();//读取y坐标};C++中,类通过class来构造,class声明的语法与C语言中的struct

3、声明类似。上面的例子声明了一个叫作Point的类,它包含两个数据成员(xVal、yVal)以及四个函数成员。声明了以上的类后,可以定义Point对象,即Point类的一个实例,例如:Pointp;此处p为一个Point类的对象。在程序中,可以通过C语言中结构变量的成员运算符“.”来操作p的公有部分的四个函数成员:p.SetPt(10,10);此处调用Point的函数成员。在C++中,不允许对象的外部直接访问对象的私有部分。上面例子中Point类的两个数据成员未声明属性,缺省认为是私有的(private);另外四

4、个函数成员在public部分声明,则是公有的,可以由对象的外部直接访问。上面的类声明也可以像下面这样声明:classPoint{private://此处显式声明xVal,yVal为私有intxVal,yVal;public:voidSetPt(int,int);voidOffsetPt(int,int);intGetX();intGetY();};在C++中,类的数据成员和函数成员都可以声明为私有的或公有的,应该根据实际的需要来进行定义。公有部分指定了类的接口,私有部分只能由该类的函数成员访问。3.1.2函数成

5、员的实现函数成员的实现通常不是类的一部分,通常在别处出现。以下是3.1.1例子中类的四个函数成员的实现:voidPoint::SetPt(intx,inty){if(x>=0&&x<640&&y<480&&y>=0){xVal=x;yVal=y;}}voidPoint::OffsetPt(intx,inty){xVal+=x;if(xVal>=640)xVal=639;if(xVal<0)xVal=0;yVal+=y;if(yVal>=480)yVal=479;if(yVal<0)yVal=0;}intPoin

6、t::GetX(){returnxVal;}intPoint::GetY(){returnyVal;}在这些函数成员的实现中,每个函数成员的名字前都加上了Point::来指示它属于Point类。这里类的成员函数直接访问类的私有部分数据xVal和yVal,类的外部不能直接访问私有成员xVal和yVal,可以通过GetX和GetY两个函数成员获得xVal和yVal的值,它们的值只能由SetPt和OffsetPt改变,可以确保数据在有效范围之内。也可以用内置函数的方式来实现C++中类的函数成员,例如:inlinein

7、tPoint::GetX(){returnxVal;}类的函数成员定义为内置函数更为简单的方法是:在定义时把它的实现包含在类定义中,此时不需使用关键字inline:classPoint{intxVal,yVal;public:voidSetPt(int,int);voidOffsetPt(int,int);intGetX(){returnxVal;}//内置函数intGetY(){returnyVal;}};3.1.3函数成员的隐含参数C++语言编译器为每一个对象的数据成员分配存储空间,但是它并不为函数成员分配

8、存储空间。同一个类的所有对象的函数成员的可执行代码在内存空间中只有一份,程序在执行时根据调用该函数成员的对象来决定函数中使用的类成员在存储空间的位置。对上面的类Point,如果使用C语言来实现,我们可以定义一个结构类型,然后定义若干对它进行操作的函数,将要操作的结构变量的指针传递给该函数,例如:structpoint{intxVal,yVal;};voidSetPt(structpoi

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

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

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