- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲类和对象剖析
* * * * * * * * * * * ,即直接在调用处插入函数体中的代码,而不进行一般的函数调用操作 * 普通函数可以带缺省形参值,类的成员函数的形参也可以设置缺省值, * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 对象的作用域 局部对象:定义在函数内部的对象,其作用域范围从定义位置开始到其所在代码块的结束为止。 全局对象:在所有函数之外定义的对象。全局对象的构造函数在main()函数执行之前被调用,析构函数在main()函数执行到最后的大括号时(即程序退出时)被调用。 3.4 类的对象成员3.4.1. 对象成员的定义 对象成员:类的一个成员的数据类型是另一个类时,该成员称为类的对象成员。 class A { private: … public: … }; class B { private: A a1,a2; int b1,b2; public: … }; 3.4.2. 对象成员的初始化 在类中出现对象成员时,该类的构造函数要包含对对象成员的初始化,通常采用成员初始化列表的方法来初始化对象成员(即子对象)。 格式为: 类名::构造函数名(参数表):对象成员1(参数表1),对象成员2(参数表2)… { //其中参数表包含参数表1、参数表2…中所有参数。 // 构造函数函数体 } 例3.5 成员对象的初始化 #includeiostream.h class A{ int a1,a2; public: A(int i,int j){ a1=i; a2=j; } void printA( ){ couta1”,”a2endl;} }; class B{ A a; int b1; public: B(int i,int j,int k):a(k,j) { b1=i;} void printB ( ); }; void B::printB( ){ a.printA( ); coutb1endl; } 3.5 指向对象的指针和对象的引用 3.5.1 指向对象的指针 定义对象指针的一般语法格式为: 类名 *对象指针变量名 例如: Point point1 , point2 ; // 定义了类Point的两个对象 point1、point2 Point *p1,*p2 ; // 定义了指向类Point的对象的指针p1、p2 p1=point1 ; p2=point2 ; // 将指针p1和p2分别指向对象point1和point2 对象指针用来存放对象存储空间的首地址。对象指针的定义和使用遵循一般变量指针的各种规则。 可以用指向对象的指针来访问对象的成员,访问方式如下: 对象指针?数据成员名 或者:对象指针?成员函数名(〈参数表〉) 例3.6 利用对象指针访问对象成员 #includeiostream.h class Point{ int x, y; public: Point (int a,int b) { x = a ; y = b ; cout”Constructor called.”endl; } void print( ) { cout”x=”x” y=”yendl; } }; void main() { Exe obj(3,4),*p; //定义类Exe的对象obj和类Exe的对象的指针p obj.print( ); // 引用对象成员函数print() p=obj; // 将指针p指向对象obj p?print( ); //用指针p引用对象成员函数print() } ? 程序运行结果为: Constructor called. x=3 y=4 x=3 y=4 3.5.2 this指针 this指针是一个隐含于每一个类的成员函数中的特殊指针,用来指向正在调用成员函数的对象本身。 当通过一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后将this指针作为隐含的参数传给其调用的成员函数,每次成员函数存取数据成员时,则隐含使用this指针。 如果不同的对象调用同一个成员函数,编译程序将根据该成员函数的this
您可能关注的文档
最近下载
- 2025年公安招聘辅警考试笔试题及答案.docx VIP
- (完整word)二次函数练习顶点式基础练习题 .pdf VIP
- 2025年公安局警务辅助人员招聘考试笔试试题(附答案).docx VIP
- 2025-2026学年苏科版劳动五年级上册教学计划及进度表.pdf VIP
- 干式变压器技术规范书.docx VIP
- 2025年西藏自治区昌都市护士基础理论知识考试题库及答案解析.pdf VIP
- 工程建设监理收费标准(发改价格2022670号).docx VIP
- 2025年黑龙江省绥化市辅警招聘考试题库及答案.docx VIP
- 操作手册模板【范本模板】.pdf VIP
- 幼儿园角色扮演的重要性和意义.docx VIP
文档评论(0)