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

admin2009-02-15  36

问题 有以下程序:      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

答案2

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

最新回复(0)