主观

(1)将“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);”。

参考答案
您可能感兴趣的试题

下列关于运算符重载不正确的是(  )。

  • A.运算符重载不能改变运算符的操作数个数
  • B.运算符重载不能改变运算符的优先级
  • C.运算符重载不能改变运算符的结合性
  • D.运算符重载能改变对预定义类型数据的操作方式

若要对Date类中重载的加法运算符成员函数进行声明,下列选项中正确的是(  )。

  • A.Data+(Data);
  • B.Dataoperator+(Data);
  • C.Data+operator(Data);
  • D.operator+(Data.Data);

下面程序的运行结果为(  )。

#include

classA

{

intnum;

public:

  • A(inti){num=i;)
  • A(A&a){num=a.num++;}    voidprint(){cout<
  • Aa(1),b(a);
  • A.print();
  • B.print();    }
  • C.11B.12
  • D.21D.22
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服