有以下程序: class Date { public: Date(int y,int m,int d); { year=y; month=m day=d; }

admin2010-12-16  20

问题 有以下程序:
   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;时,系统初始化一个匿名对象时使用了拷贝构造函数。
转载请注明原文地址:https://kaotiyun.com/show/CBVp777K
0

最新回复(0)