实验三构造函数和析构函数Word格式.docx

上传人:b****4 文档编号:17737098 上传时间:2022-12-09 格式:DOCX 页数:11 大小:35.36KB
下载 相关 举报
实验三构造函数和析构函数Word格式.docx_第1页
第1页 / 共11页
实验三构造函数和析构函数Word格式.docx_第2页
第2页 / 共11页
实验三构造函数和析构函数Word格式.docx_第3页
第3页 / 共11页
实验三构造函数和析构函数Word格式.docx_第4页
第4页 / 共11页
实验三构造函数和析构函数Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验三构造函数和析构函数Word格式.docx

《实验三构造函数和析构函数Word格式.docx》由会员分享,可在线阅读,更多相关《实验三构造函数和析构函数Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

实验三构造函数和析构函数Word格式.docx

Aa(5);

a.show();

a.set(10);

return0;

//结果:

//5

//10

(2)

usingnamespacestd;

classX

{private:

inta=0;

//私有成员不允许赋初值

int&

b;

constintc;

voidsetA(inti){a=i;

X(inti){a=i;

public:

intX(){a=b=0;

}//构造函数无返回值

X(inti,intj,intk){a=i;

b=j;

c=k;

}

setC(intk)const{c=c+k;

}//成员函数没有标明返回值类型.

intmain()

{

Xx1;

Xx2

(2);

//私有成员函数不可被外界访问.

Xx3(1,2,3);

x1.setA(3);

return0;

改正后的程序:

#include<

classX

inta;

intb;

intc;

}X(inti){a=i;

X(){a=b=0;

X(inti,intj,intk)

{a=i;

voidsetC(intk){c=c+k;

Xx3(1,2,3);

2(请先阅读下面的程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结

果是否正确。

classtest{

test();

intgetint(){returnnum;

floatgetfloat(){returnfl;

~test();

intnum;

floatfl;

test:

:

test()

cout<

"

Initalizingdefault"

<

endl;

num=0;

fl=0.0;

~test()

Destructorisactive"

intmain()

testarray[2];

array[1].getint()<

array[1].getfloat()<

//Initalizingdefault//Initalizingdefault//00

//Destructorisactive//Destructorisactive

#include<

string>

X(intx1,char*x2,floatx3):

a(x1),c(x3)

{b=newchar[sizeof(x2)+1];

strcpy(b,x2);

X():

a(0),b("

X:

X()"

),c(10){}

X(intx1,char*x2="

X(....)"

intx3=10):

a(x1),b(x2),c(x3){}

X(constX&

other)

{a=other.a;

b="

X(constX&

other)"

;

c=other.c;

voidprint()

{cout<

"

a="

a<

\t"

b<

c="

c<

private:

char*b;

floatc;

X*A=newX(4,"

X(int,char,float)"

32);

XB,C(10),D(B);

A->

print();

B.print();

C.print();

D.print();

结果;

//a=4b=X:

X(int,char,float)c=32

//a=0b=X:

X()c=10

//a=10b=X:

X(….)c=10

other)c=10

3(在实验二第2题工资管理类Salary中定义构造函数初始化工资数据的各分项数据。

该类的形式如下:

classSalary

Salary(){初始化工资数据的各分项数据为0}

Salary(……){初始化工资数据的各分项数据}

voidsetXX(doublef){XX=f;

doublegetXX(){returnXX;

doubleRealSalary(){……}//计算实发工资

……

Private:

BoubleWage,Subsidy,Rent,WaterFee,ElecFee;

其中,成员函数setXX()用于设置工资的各分项数据,成员函数getXX()用于获取工资的各分项数据,XX代表Wage、Subsidy等数据成员,如Wage对应的成员函数则为setWage()和getWage()。

实发工资=Wage+Subsidy-Rent-WaterFee-ElecFee编程完善该类的设计,并在主函数中测试该类的各成员函数。

//编程完善该类的设计,并在主函数中测试该类的各成员函数。

classsalary

salary();

salary(doublea,doubleb,doublec,doubled,doublee)

{wage=a;

subsidy=b;

rent=c;

waterfee=d;

elecfee=e;

voidsetwage(doublef){wage=f;

voidsetsubsidy(doublef){subsidy=f;

voidsetrent(doublef){rent=f;

voidsetwaterfee(doublef){waterfee=f;

voidsetelecfree(doublef){elecfee=f;

doublegetwage(){returnwage;

doublegetsubsidy(){returnsubsidy;

doublegetrent(){returnrent;

doublegetwaterfee(){returnwaterfee;

}doublegetelecfee(){returnelecfee;

voidRealSalary(){

cout<

最后实发的工资是:

(wage+subsidy-rent-waterfee-elecfee)<

}//计算实发工资

doublewage;

doublesubsidy;

doublerent;

doublewaterfee;

doubleelecfee;

classsalarywang(4000.00,55.00,332.00,324.00,100.00);

wang.RealSalary();

4(在实验二第3题中对职工类Employee定义构造函数实现以下功能:

创建职工对象时,

可以按不同方式指定职工信息。

5(在实验二第4题中对三角形类定义构造函数完成三角形的初始化。

cmath>

classtriangle

{public:

triangle(doublei,doublej,doublek){a=i;

b=j;

c=k;

voidarea();

voidzhouchang();

voidintputxinxi();

private:

doublea;

doubleb;

doublec;

doubleAREA;

doubleZHOUCHANG;

voidtriangle:

area(){AREA=sqrt(4*a*a*b*b-(a*a+b*b-c*c)*(a*a+b*b-c*c))/4;

zhouchang(){ZHOUCHANG=a+b+c;

}voidtriangle:

intputxinxi(){cout<

三角形的面积是:

AREA<

endl<

三角形的周长是:

ZHOUCHANG<

{classtriangleex(6.0,8.0,10.0);

ex.area();

ex.zhouchang();

ex.intputxinxi();

6(设计一个时钟类Clock。

数据成员包括hour(小时)、minute(分钟)、second(秒)。

要求用成员函数实现以下功能:

(1)创建具有指定时钟(小时、分钟、秒)的Clock对象,默认时钟为00:

00:

00。

(2)动态地设置时、分、秒。

(3)在时间类的析构函数中输出“Goodbye!

”。

(4)定义拷贝构造函数并调用。

(5)在屏幕上按“时:

分:

秒”的格式显示时钟。

(6)在主函数中测试该类。

classClock

inthour;

intmin;

intsec;

Clock();

//构造函数

voidSetHour(inthour);

//设置时

voidSetMin(intmin);

//设置分

voidSetSec(intsec);

//设置秒

voidPrintTime();

//打印时间

voidClock:

SetHour(inthour)

if(hour>

=0&

&

hour<

24)

this->

hour=hour;

elsecout<

小时不正确"

SetMin(intmin)

if(min>

min<

60)

min=min;

分钟不正确"

SetSec(intsec)

if(sec>

sec<

sec=sec;

秒数不正确"

PrintTime(){

Clock:

Clock()

hour=0;

min=0;

sec=0;

Clockt;

t.PrintTime();

输入小时"

cin>

>

hour;

//

输入分钟"

min;

输入秒数"

sec;

t.SetHour(hour);

t.SetMin(min);

t.SetSec(sec);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1