有如下程序: #include<iostream> using namespaee std; class Demo{ public: Demo( ){cout<<"default constructor\n";} Dem

admin2013-02-27  27

问题 有如下程序:    #include<iostream>    using namespaee std;    class Demo{    public:    Demo( ){cout<<"default constructor\n";}    Demo(const Demo &x){cout<<"copy constructor\n";}    };    Derno userCore(DemoB) {Demo c(B) ;return c;}    int main( ){    Demo a,d;    cout<<"calling userCode( )\n";    d=userCode(A) ;    return 0;    }    执行上面程序的过程中,构造函数Demo( )和Demo(const Demo &x)被调用的次数分别为

选项 A、1和1
B、1和2
C、2和3
D、2和4

答案C

解析 无参构造函数调用和复制构造函数调用的Demo a,d;调用2次无参构造函数Demo( ),在Demo userCore(Demo B) {Demo c(B) ;return c;}函数中,Demo b调用一次复制构造函数,Demo c(B) 调用一次复制构造函数,在函数返回值时还要调用一次复制构造函数,故Demo(const Demo &x)的调用次数为3次。
转载请注明原文地址:https://kaotiyun.com/show/pYVp777K
0

最新回复(0)