试题与答案

有以下程序: Class Date public: Date(int y,

题型:单项选择题

题目:

有以下程序:
Class Date

public:
Date(int y,int m,mt 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;

mt main()

Date date1(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 date3(date1);时,用已经建立的对象date1对正在建立的对象date3进行初始化;第二次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第三次是在执行fun函数中的返回语句return temp时,系统初始化一个匿名对象时使用了拷贝构造函数。

试题推荐
微信公众账号搜索答案