- 8
- 0
- 约4.59千字
- 约 5页
- 2017-02-04 发布于北京
- 举报
C教程第章类与对象类之间的对象关系对
7章 类与对象
7.1 类和对象(定义及使用)初步
7.2成员函数的重载
7.3 对象的初始化、构造函数与析构函数
7. 4 类的定义及其使用
7. 5 类的静态成员及常量成员
7. 6 友元
7. 7 类之间的对象关系 对象成员和嵌套
7. 7.1 对象成员
对象成员:定义一个新类时,把一个已定义类的对象作为该类的成员,称为对象成员。
对于含有对象成员的对象,在对该对象进行初始化之前,首先要对该对象中对象成员进行初始化,这要通过调用对象成员的构造函数来实现。当类中含有对象成员时,通常采用“初始化成员列表”的方法向对象成员的构造函数传递实参。
初始化成员列表的一般格式:
类名(参数表0) :c1(参数表1)〈〈,c2(参数表2),c3(参数表3)---cn(参数表n) 〉〉
{ - - - } //构造函数体
1、冒号后面的部分成为初始化成员列表;
2、c1、--- 、cn即可以为对象成员名,也可以为基本数据类型的成员数据。
1)当c1、--- 、cn为对象成员时,其后的参数表为向对象成员所在类的构造函数所提供的参数(实参),这些参数(实参)是由参数表0中的参数与其他常量或有确定值的变量一起组成的表达式。
如:在对对象成员ck进行初始化时,根据参数表k中的参数的个数和类型确定所要调用的构造函数版本。
如果某个对象成员没有出现在初始化成员列表中,则初始化该成员时,调用其所在类中的具有默认参数的构造函数。
2)当c1、--- 、cn为基本数据类型的成员时,则其后的参数表为该成员的初始值。
但如果在构造函数体中又对该成员数据设置初始值,则构造函数体中的值为最终值。
注意:只能使用初始化成员列表的方法初始化const成员数据,如果改用构造函数将出错。
3)类中定义的对象成员与在类外的定义对象不同,后者意味着对象创建;类中的对象成员说明并不直接与对象的创建和初始化相联系,要等所在的类的对象被创建时(通过构造函数)一同被创建。
3.对对象成员初始化的顺序取决于这些对象成员在类中说明的顺序,即先说明先调用,与
它们在成员化列表中的顺序无关。
4.在创建具有对象成员的类的对象时,先按对象成员的先后次序调用各个对象成员的构造
函数,然后才调用这个类本身的构造函数。
5.析构函数的调用顺序与构造函数相反。
7. 7.2 对象成员举例
例1:分析程序的输出结果
# include iostream.h
class A
{ int x ,y ;
public:
A ( ) { }
A(int a , int b)
{ x=a ; y=b ; cout“调用类A的构造函数!”endl ;}
void show ( )
{ cout”x=”x’\t’”y=”y’\n’ ;}
~ A( ){cout”调用类A析构函数!“endl ;}
};
class B
{ int Length , width ;
public :
B( ) { }
B( int a , int b)
{ Length = a ; Width = b ; cout”调用了类B的构造函数!”endl ;}
void show ( )
{ cout ”Length=”Length’\t’”width=”Width’\n’ ;}
~ B ( ) {cout”调用类B的析构函数!\n “ ; }
};
class C
{ int r , High ;
A al ; //D
B b1 ; //E
public :
C(int a , int b ,int c ,int d ) : a1 (c,d) ,b1(500 ,600) //F
{ r=a ; High=b ;
cout”调用了类C的构造函数!” end1 ;
}
void show ( )
{ cout”r=”r’\t’”High=”High’\n’ ;
al.show ( ) ; //注意:a1.show必须是公有成员函数,若是私有的,则错误。
b1.show( ) ; //同理
}
~ c ( ) {cout”调用类C的析构函数!\n “ ;}
} ;
void main (void )
{ C c1 (100 ,200 , 300 ,400) ; //G
c1.show ( ) ;
}
运行该程序,输出结果为:
调用了
您可能关注的文档
最近下载
- 2026年牛津译林版中考英语新课标1500个单词背诵清单.pdf
- 疥疮诊疗中国专家共识(2026版)解读PPT课件.pptx VIP
- 《烟雾病和烟雾综合征诊断与治疗中国专家共识(2024)》解读PPT课件.pptx VIP
- 2024年改良型新药行业研究报告及未来五至十年预测分析报告.docx
- 乡镇民主生活会批评与自我批评.docx VIP
- 陕西凤翔县马家庄秦墓出土的出土陶罐.docx VIP
- 采血后预防淤青的按压方式.pptx VIP
- 纺织厂供配电系统设计.doc VIP
- 乡镇领导班子成员相互批评意见.docx VIP
- 30.XX中专职业学校“十五五”五年中长期发展规划(2026-2030年).pdf
原创力文档

文档评论(0)