问题 单项选择题

有以下程序:
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 = a.day;

void print()
cout<<year<<"."<<month<<"."<<day<<end1;

private:
int year, month,day;
;
Date fun(Date d)
Date temp;
temp = d;
return temp;

int main()

Date date 1 (2000,1,1),date2(0,0,0);
Date date3(date 1);
date2 = fun(date3);
return 0;

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

A.2

B.3

C.4

D.5

答案

参考答案:B

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

名词解释
单项选择题 A1/A2型题