C教程第07章类与对象-7类之间的对象关系对.doc

C教程第07章类与对象-7类之间的对象关系对.doc

ID:62033165

大小:29.50 KB

页数:5页

时间:2021-04-15

C教程第07章类与对象-7类之间的对象关系对.doc_第1页
C教程第07章类与对象-7类之间的对象关系对.doc_第2页
C教程第07章类与对象-7类之间的对象关系对.doc_第3页
C教程第07章类与对象-7类之间的对象关系对.doc_第4页
C教程第07章类与对象-7类之间的对象关系对.doc_第5页
资源描述:

《C教程第07章类与对象-7类之间的对象关系对.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、7章类与对象7.1 类和对象(定义及使用)初步7.2成员函数的重载7。3对象的初始化、构造函数与析构函数7。4类的定义及其使用7. 5 类的静态成员及常量成员7.6 友元7。7类之间的对象关系 对象成员和嵌套7。7。1 对象成员对象成员:定义一个新类时,把一个已定义类的对象作为该类的成员,称为对象成员。对于含有对象成员的对象,在对该对象进行初始化之前,首先要对该对象中对象成员进行初始化,这要通过调用对象成员的构造函数来实现。当类中含有对象成员时,通常采用“初始化成员列表”的方法向对象成员的构造函数传

2、递实参。初始化成员列表的一般格式:<类名>(参数表0):c1(参数表1)<<,c2(参数表2),c3(参数表3)——-cn(参数表n) 〉〉{-— —}  //构造函数体1、冒号后面的部分成为初始化成员列表;2、c1、--- 、cn即可以为对象成员名,也可以为基本数据类型的成员数据。1)当c1、——— 、cn为对象成员时,其后的参数表为向对象成员所在类的构造函数所提供的参数(实参),这些参数(实参)是由〈参数表0〉中的参数与其他常量或有确定值的变量一起组成的表达式. 如:在对对象成员ck进行初始化时

3、,根据<参数表k〉中的参数的个数和类型确定所要调用的构造函数版本。如果某个对象成员没有出现在初始化成员列表中,则初始化该成员时,调用其所在类中的具有默认参数的构造函数。2)当c1、---、cn为基本数据类型的成员时,则其后的<参数表〉为该成员的初始值。但如果在构造函数体中又对该成员数据设置初始值,则构造函数体中的值为最终值。注意:只能使用初始化成员列表的方法初始化const成员数据,如果改用构造函数将出错。3)类中定义的对象成员与在类外的定义对象不同,后者意味着对象创建;类中的对象成员说明并不直接与

4、对象的创建和初始化相联系,要等所在的类的对象被创建时(通过构造函数)一同被创建。3.对对象成员初始化的顺序取决于这些对象成员在类中说明的顺序,即先说明先调用,与它们在成员化列表中的顺序无关。4.在创建具有对象成员的类的对象时,先按对象成员的先后次序调用各个对象成员的构造函数,然后才调用这个类本身的构造函数。5。析构函数的调用顺序与构造函数相反.7。7.2对象成员举例例1:分析程序的输出结果#includeclass A { intx,y;public: A(){}A(inta

5、 , intb) { x=a;y=b ;  cout〈〈“调用类A的构造函数!”<〈endl;} voidshow (){ cout<<”x="<<x〈〈’\t'<〈”y=”〈

6、h="<<Length〈〈’t’〈<”width="〈<Width<〈’n' ;}~B() {cout<<"调用类B的析构函数!“;}};class C{int r,High ;A al ;        //DBb1;      //Epublic:C(inta,intb ,intc,intd ) :a1 (c,d),b1(500 ,600)   //F {r=a;High=b; cout<<”调用了类C的构造函数!”<

7、<’\t’<<”High=”〈〈High<〈'\n’;  al.show();//注意:a1。show必须是公有成员函数,若是私有的,则错误。 b1.show( );//同理}~c(){cout<<”调用类C的析构函数!“;}} ;void main (void){C c1(100,200,300,400);       //Gc1.show();}运行该程序,输出结果为:调用了类A的构造函数!调用了类B的构造函数!调用了类C的构造函数!r=100High=200x=300 y=400Lengt

8、h=500width = 600调用C的析构函数!调用B的析构函数!调用A的析构函数!例2 利用成员函数设置对象成员中的成员数据#include〈iostream.h〉classCArea{intx, y;public:voidset(inti, intj){x=i;y=j ;}intget(){returnx*y;}} ;classVolume{ inthigh; CAreas1;public: void set (inti, intj, intk ){ hight

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

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

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