第二章类和对象.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cout“angle=”p.angle() “,radius=”p.radius() “,xoffset=”p.xoffset() “,yoffset=”p.yoffset()endl; } } 例中,私有数据存放一个类对象的x,y 坐标,一切对x,y的操作都由成员函数完成。 double atan2(double y,double x);是在“math.h”中定义的坐标函数,其功能是求y/x 的反正切。 通常将Point 类的定义从程序中分离,成为独立的头文件point.h,则程序可改为: //…ch11-7.cpp #include iostream.h #include math.h #include “point.h” void main( ) { …… } //…point.h //类定义部分 class Point { //成员函数声明(公共接口) //私有数据 }; //类实现部分 void Point::set(double ix,double iy) { x=ix; y=iy; } //… 由于类很好地屏蔽了内部数据的表示,如果需要把类Point 的私有数据成员从点的直角坐标(x,y) 改为点的极坐标(a,r),尽管修改了相应成员函数的内部实现,但由于接口未变(即公共成员函数的名字、功能、调用方式均未变)。因此以该类为基础的应用程序的开发就不须改变,这就大大地减轻了开发应用程序的难度。 例如,上例中的直角坐标改为极坐标表示,程序改写如下: 包含main()的文件ch11-7.cpp不须改变,point.h 文件中类说明部分提供的公共接口也无须改变,仅改变类的成员函数的实现部分。 //…point.h class Point { public: void set(double ix,double iy); //…公共接口未变 double xoffset(); double yoffset(); double angle(); double radius(); private: double a; double r; } //成员函数实现部分改变 void Point::set(double ix,double iy) { a=atan2(iy,ix); r=sqrt(ix*ix+iy*iy); } double Point::xoffset() { return r*cos(a); } double Point::yoffset() { return r*sin(a); } double Point::angle() { return(180/3.14159)*a } double Point::radius() { return r; } 类的作用域简称类域,类域的范围是指在类所定义的类体中,该类的成员局部于该类所属的类域。一个类的任何成员都能访问同一类的任一其他成员。 对类作用域外的一个类的数据成员和成员函数的访问受程序员编写程序的控制。当把成员定义为私有和保护时,外界访问被限制。 再论程序结构 一、类的作用域 类域可以被包含在文件域中,可见类域小于文件域;而类域中又可包含函数域,可见类域又大于函数域。 类域介于文件域和函数域之间。 不同存储类的对象具有不同的生命期。 对象的生存期是指对象从创建开始到被释放为止的存在时间,即该对象的寿命。 按生命期的不同,对象可分为如下三种(与介绍的变量划分情况相似)。 二、对象的生存期 1、局部对象:定义在一个函数体内或程序块内,作用域和生命周期都是局部的; 2、全局对象:定义在某个文件中,作用域为包含该文件的整个程序,生命期是全局的; 3、静态对象:分为内部静态对象和外部静态对象,生命期都是全局的,前者作用域为定义它的函数体和程序块内;后者作用域为定义它的文件。 三、可见性 类名允许与其他变量名或函数名同名,可通过下面方法实现正确的访问: class Sample { //… } void func(int Sample) //形参屏蔽了类名

文档评论(0)

msb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8134116003000000

1亿VIP精品文档

相关文档