}
4.写出实验报告。
根据实验的真实情况,进行分析,写出实验报告。
(四)构造函数与析构函数
1.实习目的及要求:
1)掌握构造函数和析构函数定义方法;
2)掌握构造函数的重载、具有默认值的构造函数的使用方法;
3)加深对构造函数的特殊用途的理解。
2.预习:
预习构造函数和析构函数的定义、构造函数的重载、具有默认值的构造函数以及构造函数的特殊用途等相关知识。
3.实验内容:
3.1分析下面的程序,指出程序运行的结果:
1)分析下面的程序,指出程序运行的结果:
#include
classCylinder
{
public:
Cylinder(){}
Cylinder(doubler,doubleh);
voidsetcylinder(doubler,doubleh);
doublegetradius(){returnradius;}
doublegetheight(){returnheight;}
doublevolume();
doublesurface_area();
private:
doubleradius;
doubleheight;
};
constdoublePI=3.1415926;
Cylinder:
:
Cylinder(doubler,doubleh)
{
radius=r;
2
height=h;
}
voidCylinder:
:
setcylinder(doubler,doubleh)
{
radius=r;
height=h;
}
doubleCylinder:
:
volume()
{
doublevol;
vol=PI*radius*radius*height;
returnvol;
}
doubleCylinder:
:
surface_area()
{
doublearea;
area=2*PI*radius*height+2*PI*radius*radius;
returnarea;
}
voidmain()
{
Cylindercylinder1(7.0,12.0),cylinder2;//A
cylinder2.setcylinder(12.3,18.7);
cout<<"theradiusofcylinder1is:
\t"<cout<<"theheightofcylinder1is:
\t"<cout<<"thevolumeofcylinder1is:
\t"<cout<<"thesurfaceareaofcylinder1is:
\t"<cout<<"theradiusofcylinder2is:
\t"<cout<<"theheightofcylinder2is:
\t"<cout<<"thevolumeofcylinder2is:
\t"<cout<<"thesurfaceareaofcylinder2is:
\t"<}
2)分析下面的程序,指出程序的错误:
#include
#include
classSample
{
inti;
public:
intj;
Sample(intx)
{
i=x;
3
}
~Sample()
{
exit
(1);
cout<<"撤消"<}
};
voidmain()
{
Samplea1(10),a2(20);
exit
(1);
cout<<"撤消"<}
3)将下面的程序补充完整:
#include
classtest{
private:
intnum;
floatf1;
public:
test();
test(___,___);
getint(){returnnum;}
getfloat(){returnf1;}
};
test__test()
{
cout<<"默认初始化"<____=0;
____=0.0;
}
test____test(__n,__f)
{
cout<<"初始化"<_____=n;
_____=f;
}
voidmain()
{
testa;
testb(2,5.5);
}
4、写出实验报告。
根据实验的真实情况,进行分析,写出实验报告。
*(五)对象成员
1.实习目的及要求:
1)理解对象成员的概念;
2)掌握对象成员的初始化方法。
2.预习:
预习对象成员,对象的创建和使用,*this指针等相关知识。
3.实验内容:
分析调试程序指出程序运行的结果:
1)分析下面程序中的对象传递,写出输出结果。
#include
classA
{
inti;
public:
A(intx){i=x;}
intget(){returni;}
};
intcube(Aa)
{returna.get()*a.get()*a.get();}
voidmain()
{Aa1(10),a2(20);
cout<cout<}
2)分析对象成员的调用,写出程序结果。
#include
2
classB
{
private:
inta,b;
public:
B(){}
B(inti,intj);
voidshowb();
};
classA
{
private:
Bc;
public:
A(){}
A(inti,intj);
voidshowa();
};
A:
:
A(inti,intj):
c(i,j)
{}
voidA:
:
showa()
{
c.showb();
}
B:
:
B(inti,intj)
{
a=i;
b=j;
}
voidB:
:
showb()
{
cout