有如下程序: include using namespace std; class Demo有如下程序: #include<iostream> using namespace std; class Demo { public: Demo(){ cout<<"default constructor\n";} Demo(const Demo & x){ cout<<"copy constructor\n":} }; Demo userCode(Demo b){DemoC(b);return c;} int m

题目
有如下程序: include using namespace std; class Demo

有如下程序: #include<iostream> using namespace std; class Demo { public: Demo(){ cout<<"default constructor\n";} Demo(const Demo & x){ cout<<"copy constructor\n":} }; Demo userCode(Demo b){DemoC(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


相似考题
更多“有如下程序: #include<iostream> using namespace std; class Demo ”相关问题
  • 第1题:

    如下程序的输出结果是includevoid fun(int & X,inty){intt=x;x=y;y=t;}int main(){in

    如下程序的输出结果是 #include<iostream> void fun(int & X,inty){intt=x;x=y;y=t;} int main( ){ int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; }

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:参数X是引用传递,传递的是地址:参数Y是值传递,函数fun( )是做X与Y值交换,交换后X的值要被回传给a[1],此时a[1]=a[0]=23。

  • 第2题:

    有如下程序:includeusing namespace std;classDemo{public: Demo(){cont<<"default

    有如下程序: #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(constDemo&x)为复制构造函数。C++在创建一个对象时,会自动调用类的构造函数,所以语句“Demoa,d;”将调用函数Demo()2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句“d=userCode(a);”调用复制构造函数3次。

  • 第3题:

    请将如下程序补充完整,使得输出结果为:bbaa。 include using naluespace std; class

    请将如下程序补充完整,使得输出结果为:bbaa。

    include<iostream>

    using naluespace std;

    class A{

    public:

    ______{eout<<"aa";}

    };

    class B:public A{

    public:

    ~B( ){eont<<"bb";}

    };

    int ulain( ){

    B*P=new B;

    delete P;

    return 0;

    }


    正确答案:~A( )
    ~A( ) 解析:派生类和基类的析构函数调用顺序是先调用派生类的析构函数,然后调用基类的析构函数,打印“bb”说明已经在调用派生类的析构函数,则要继续打印“aa”,显然就只有定义在基类的析构函数中去打印,故答案为~A( )。

  • 第4题:

    有如下程序:include using namespace std;class Demopublic:{ Demo () { cout << "de

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

    A.1和1

    B.1和2

    C.2和3

    D.2和4


    正确答案:C
    解析:类拷贝的相关内容。

  • 第5题:

    有下列程序: include using namespace std; class Demo { public: Demo(){cout<<"d

    有下列程序: #include<iostream.h> using namespace std; class Demo { public: Demo(){ cout<<"default constmctor\n";} Demo(const Demo &x){ cont<<"copy constructor\n";} }; Demo userCode(Demo b){Demo c(b);return c;} int

    A.1和1

    B.1和2

    C.2和3

    D.2和4


    正确答案:C
    解析: 此题考查的是虚函数的应用。C++语言中,在创建一个对象时,会自动调用类的构造函数,所以语句“Demoa,d;”将调用函数Demo()两次。当一个对象作为实参传递给函数时,为初始化形参,要调用复制构造函数;在函数返回一个对象时调用复制构造函数。所以语句“d=userCode(a);”调用复制构造函数3次。