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