A-A+

将“TC(inti intj)”补充完整为“TC(inti intj):Num2(j)”。

2022-08-05 23:06:03 问答库 阅读 173 次

问题详情

将“TC(inti,intj)”补充完整为“TC(inti,intj):Num2(j)”。 (2)应添加“friendvoidfunc;”。 (3)应添加“intTC::Num3=4;”。 (4)将“obi.AddNum”补充完整为“obj.AddNum(2);”。 【解析】本题在第1处完成类的构造函数初始化类的成员变量,常数据成员也必须初始化,并且不能被更新,常数据成员的初始化只能通过构造函数的成员初始化类表进行,因此第1处的语句应为“TC(inti,intj):Num2(j)”,i用来初始化Num1和Num3,j初始化Num2。第2处完成fune的函数定义,由审题分析可知,函数fune为类的友元,故第2处的语句应为“friendvoidrune;”。第3处的语句是静态成员的初始化,静态数据成员的初始化格式为“(数据类型)<类名>::<静态数据成员)=<初始值>”,因此第3处的语句应为“intTC::Num3=4;”。成员函数AddNum带有一个整型参数,因此调用此函数时必须有参数传入,可由程序运行结果分析得知传入的参数值的大小。在fun函数内,定义TCobj(1,2)后,obj.Num1=1,obj.Num2=2,Num3=16+1=17,obj.Num1=4,Numl为4,obj。Num2为常数据成员,其值不会改变,调用AddNum函数后调用显示函数显示成员变量值,可知Num3为19,因此AddNum的参数为19-17=2,即第4处的语句应为“obj.AddNum(2);”。 请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成TC的构造函数,请改正注释1后的错误。
(2)完成func函数定义,请改正注释2后的错误。
(3)初始化CmyClass的成员变量Num3为4,请改正注释3后的错误。
(4)完成func函数,请改正注释4后的错误。
输出的结果为
Num1=12
Num2=18
Num3=16
Num1=4
Num2=2
Num3=19
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include<iostream.h>
classTC
{
public:
//********1********
TC(inti,intj)
{
Numl=i;
Num3+=i:
}
voiddisplay
{
cout$amp;cout$amp;cout$amp;}
voidAddNum(inti)
{
Num3+=i;
}
private:
intNum1;
constintNum2;
staticintNum3;
//********2********
};
//********3********
voidfunc
{
TCobj(1,2);
obj.Num1=4;
//********4********
obj.AddNum;
ohj.display;
}
voidmain
{
TCmyObj(12,18);
myObj.display;
rune;
return;
}

考点: