A-A+

有以下程序: classDate{public: Date(inty intm intd);

2022-08-06 01:33:45 问答库 阅读 174 次

问题详情

有以下程序:
classDate
{public:
Date(inty,intm,intd);
{year=Y;
month=m;
day=d;}
Date(inty=2000)
{year=y;
month=10;
day=1;}
Date(Date&d)
{year=d.year;
month=d.month;
day=d.day;}
voidprint()
{cout$amp;day$amp;private:
intyear,month,day;};
Datefun(Dated)
{Datetemp;
temp=d;
returntemp;}
intmain()
{Datedatel(2000,1,1),date2(0,0,O);
Datedate3(date1);
date2=fun(date3);
return0;}
程序执行时,Date类的复制构造函数被调用的次数是()。
A.2
B.3
C.4
D.5请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B
B。【解析】本题复制构造函数一共被调用了三次:第一次是在执行语句Datedate3(datel);时,用已经建立的对象datel对正在建立的对象date3进行初始化;第二次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第三次是在执行fun函数中的返回语句returntemp;时,系统初始化一个匿名对象时使用了复制构造函数。

考点:程序