问题 单项选择题

有以下程序:

class Date


public:

Date(int y,int m,int d);


year=y;

month=m

day=d;


Date(int y=2000)


year=y;

month=10;

day=1;


Date(Date &d)


year=d.year;

month=d.month;

day=d.day;


void print( )


cout<<year<<"."<<month<<"."<<day<<endl;


private:

int year,month,day;

;

Date fun(Date d)


Date temp;

temp=d;

return temp;


int main( )


Date datel(2000,1,1),date2(0,0,0);

Date date3(datel);

date2=fun(date3);

return 0;


程序执行时,Date类的拷贝构造函数被调用的次数是

A.2

B.3

C.4

D.5

答案

参考答案:B

解析: 本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了3次:第一次是在执行语句Date dare3(datel);时,用已经建立的对象datel对正在建立的对象date3进行初始化;第二次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第三次是在执行fun函数中的返回语句return temp;时,系统初始化一个匿名对象时使用了拷贝构造函数。

单项选择题 A1型题
单项选择题 A3/A4型题