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

admin2010-03-29  28

问题 有以下程序:    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<<end1;    }    private:       int year,month,day;    };    Date fun(Date D)    {       Date temp;       temp=d;       return temp;     }    int main()    {       Date date1(2000,1,1),date2(0,0,0);       Date date3(date1);       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://kaotiyun.com/show/7hjp777K
0

最新回复(0)