第9章_类与对象选读.ppt

  1. 1、本文档共112页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 9.2.3 对象成员的引用 void func1( Data a,Data *p,Data r ) { a.data=100; p-data=200; r.data=300; } void caller4() { Data A, B, C; A.fun(1,2,3); B.fun(4,5,6); C.fun(7,8,9); func1(A,B,C);//将对象A、对象B的地址、对象C的引用传递到函数func1 } * 9.2.3 对象成员的引用 6.函数返回值是对象、对象指针、对象引用 函数返回对象时,将其内存单元的所有内容复制到一个临时对象中。 函数返回对象指针或引用,本质上返回的是对象的地址而不是它的存储内容。 * 9.2.3 对象成员的引用 例如: Data func1() { Data a; a.fun(1,2,3); return a; //可以返回局部对象,因为它被复制返回 } Data* func2(Data *p1,Data *p2) { if (p1-data p2-data) return p1; return p2; } Data func3(Data r1,Data r2) { if (r1.data r2.data) return r1; return r2; } * 9.2.3 对象成员的引用 void caller() { Data A, B, C; A.fun(1,2,3); B.fun(4,5,6); C=func1(); func2(A,B)-data=100; //等价于 (B)-data=100; func3(A,B).data=100; //等价于 B.data=100; } 回顾 类的定义 成员的访问控制 定义对象 对象成员的引用 * class Time { public: void set_time(int h,int m,int s); { hour=h,minute=m,sec=s ;} void show_time(); private: int hour,minute,sec; } ; void Time::show_time() { couthour“:”minute“:” secendl; } int main() { Time t1,t2; t1.set_time(1,2,3); t1.show_time(); t2.set_time(4,5,6); t2.show_time(); return 0; } * 9.3.1 构造函数 1.对象的初始化 在建立一个对象时,通常最需要立即做的工作是初始化对象,如对数据成员赋初值。 类的数据成员是不能在类定义时初始化的,例如: class Point { //Point类 int x=0, y=0; //错误 …//其他成员 } 如果一个类中所有的数据成员是公有的,则可以在定义对象时对数据成员进行初始化,例如: 如果类中的数据成员是私有的,如private的或protected的,就不能用这种方法初始化,因为外部不能直接访问私有的数据成员。 class Point { //Point类定义 public: int x, y; //数据成员声明 …//其他成员 }; Point one={10,10}; //对象初始化 Point A[3]={{10,10},{20,20},{30,30}}; //对象数组初始化 9.3.1 构造函数 * 9.3.1 构造函数 2.构造函数的定义 C++提供了构造函数(constructor)来处理对象的初始化。构造函数是类的一种特殊成员函数,不需要人为调用,而是在建立对象时自动被执行。 C++规定构造函数的名字与类的名字相同,并且不能指定返回类型。定义形式为: 类名(形式参数列表) { 函数体 } * 9.3.1 构造函数 与其他任何函数一样,构造函数可以声明为内联的。 对于有参数的构造函数,定义对象的一般形式为: 对于无参数的构造函数,定义对象的一般形式为: 类名 对象名1(实参列表), 对象名2(实参列表), ......; 类名 对象名1, 对象名2, ......; * 9.3.1 构造函数 例9.1 有两个长方体,其长、宽、高分别为1、2、3和10、20、30. 分别求它们的体积。设计一个

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档