C++构造函数详解Word文档下载推荐.docx
《C++构造函数详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++构造函数详解Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
minute=0;
sec=0;
}
voidset_time();
//函数声明
voidshow_time();
private:
inthour;
//私有数据成员
intminute;
intsec;
};
voidTime∷set_time()//定义成员函数,向数据成员赋值
cin>
>
hour;
minute;
sec;
voidTime∷show_time()//定义成员函数,输出数据成员的值
cout<
<
hour<
″:
″<
minute<
sec<
endl;
intmain()
Timet1;
//建立对象t1,同时调用构造函数t1.Time()
t1.set_time();
//对t1的数据成员赋值
t1.show_time();
//显示t1的数据成员的值
Timet2;
//建立对象t2,同时调用构造函数t2.Time()
t2.show_time();
//显示t2的数据成员的值
return0;
例9.2类内声明,类外定义带参数构造函数。
有两个长方柱,其长、宽、高分别为:
(1)12,20,25;
(2)10,14,20。
求它们的体积。
classBox
Box(int,int,int);
//声明带参数的构造函数
intvolume();
//声明计算体积的函数
intheight;
intwidth;
intlength;
Box∷Box(inth,intw,intlen)//在类外定义带参数的构造函数
{
height=h;
width=w;
length=len;
intBox∷volume()//定义计算体积的函数
{return(height*width*length);
Boxbox1(12,25,30);
//建立对象box1,并指定box1长、宽、高的值
″Thevolumeofbox1is″<
box1.volume()<
Boxbox2(15,30,21);
//建立对象box2,并指定box2长、宽、高的值
″Thevolumeofbox2is″<
box2.volume()<
return0;
例9.3构造函数的重载,参数列表化初始化变量。
在例9.2的基础上,定义两个构造函数,其中一个无参数,一个有参数。
Box();
//声明一个无参的构造函数
Box(inth,intw,intlen):
height(h),width(w),length(len){}
//声明一个有参的构造函数,用参数的初始化表对数据成员初始化
intvolume();
intheight;
intwidth;
intlength;
Box∷Box()//定义一个无参的构造函数
height=10;
width=10;
length=10;
intBox∷volume()
Boxbox1;
//建立对象box1,不指定实参
cout<
Boxbox2(15,30,25);
//建立对象box2,指定3个实参
例9.4构造函数声明时指定默认参数值
将例9.3程序中的构造函数改用含默认值的参数,长、宽、高的默认值均为10。
在例9.3程序的基础上改写如下:
{public:
Box(inth=10,intw=10,intlen=10);
//在声明构造函数时指定默认参数
private:
Box∷Box(inth,intw,intlen)
//在定义函数时可以不指定默认参数
{height=h;
width=w;
length=len;
//没有给实参
Boxbox2(15);
//只给定一个实参
Boxbox3(15,30);
//只给定2个实参
″Thevolumeofbox3is″<
box3.volume()<
Boxbox4(15,30,20);
//给定3个实参
″Thevolumeofbox4is″<
box4.volume()<
例9.5包含构造函数和析构函数的C++程序。
#include<
string>
classStudent//声明Student类
student(intn,stringnam,chars)//定义构造函数
num=n;
name=nam;
sex=s;
″Constructorcalled.″<
//输出有关信息
~Student()//定义析构函数
″Destructorcalled.″<
}//输出有关信息
voiddisplay()//定义成员函数
″num:
″<
num<
″name:
name<
″sex:
sex<
endl<
}
intnum;
charname[10];
charsex;
Studentstud1(10010,″Wang_li″,′f′);
//建立对象stud1
stud1.display();
//输出学生1的数据
Studentstud2(10011,″Zhang_fun″,′m′);
/定义对象stud2
stud2.display();
//输出学生2的数据