有如下程序: #include<iostream.h> using namespace std; class Demo { public: Demo(){ cont<<"default constructor\

admin2010-06-06  43

问题 有如下程序:    #include<iostream.h>    using namespace std;    class  Demo    {    public:       Demo(){  cont<<"default constructor\n";}       Demo(const Demo &x){  cont<<"copy constructor\n";}    };    Demo userCode(Demo b){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()为构造函数,而 Demo(const Demo &x)为复制构造函数。C++在创建一个对象时,会自动调用类的构造函数,所以语句“Demo a,d;”将调用函数Demo()2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句“d=userCode(a);”调用复制构造函数3次。
转载请注明原文地址:https://kaotiyun.com/show/05jp777K
0

最新回复(0)