- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章_类与对象分析
* 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. 分别求它们的体积。设计一个
您可能关注的文档
最近下载
- 电子部超级说服力.pdf VIP
- 地方化债又出新规:从35、47、14号文到134号文.docx
- (完整word版)学前教育专业简笔画教案.doc
- 《运筹学》课程教学大纲(本科).docx VIP
- 公路工程监理资料管理.ppt
- 华中农业大学 614微生物学 2016年考研真题.pdf VIP
- 参考学习资料 附件1:国铁集团工电部关于新建西至华中地区铁路煤运通道线名运营里程线路允许速度的函(审签稿).docx
- (新版)拖拉机驾驶证科目一知识考试题库500题(含答案).docx
- 人教部编2024年新改版语文五年级上册全套月考试题及答案(共4套).pdf VIP
- 17小学语文《盼》课件(共40张PPT).pptx VIP
文档评论(0)