有如下程序:A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A

题目

有如下程序:

A.BAA~A~B~A

B.ABA~B~A~A

C.BAA~B~A~A

D.ABA~A~B~A


相似考题
更多“ 有如下程序:A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A ”相关问题
  • 第1题:

    有如下程序: #include<iostream> usingnamespacestd; classA { public: A(){cout<<"A";} ~A(){cout<<"~A";} }; classB { A*P: public: B(){cout<<"B";p=newA;} ~B(){cout<<"~B";deleteP;} }; intmain() { Bobi; return0; } 执行这个程序的输出结果是( )。

    A.BAA~A~B~A

    B.ABA~B~A~A

    C.BAA~B~A~A

    D.ABA~A~B~A


    正确答案:B
    B。【解析】本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用子对象的构造函数输出B,P=newA再调用类A的构造函数输出A。析构函数的调用顺序和构造函数的调用顺序相反。

  • 第2题:

    有如下程序: #include<iostream> using namespace std; class A { public: A{cout<<”A”;} -A{cout<<”-A”;} }; class B:public A { A*P; public: B{cout<<”B”;P=new A;} -B{cout<<”~B”;delete p;} }; int main { B obj; return 0; } 执行这个程序的输出结果是( )。

    A.BAA~A~B~A

    B.ABA~B~A~A

    C.BAA~B~A~A

    D.ABA~A~B~A


    正确答案:B
    本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题答案为B。

  • 第3题:

    如下面程序所示,数组b中元素个数有 个。 #define a 6 main() { int b[a]; …… }


    sizeof(a)/sizeof(a[0]);

  • 第4题:

    有如下程序:includeusing namespace std;class A{public:A(){cout<<'A';)~A(){cout<<

    有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<'A';) ~A(){cout<<"~A";) }; class B:public A { A* p; publiC: B(){cout<<"B"; p=new A();) ~B(){cout<<"~B";delete p;) }; int main() { B obj; return 0; } 执行这个程序的输出结果是( )。

    A.BAA~A~B~A

    B.ABA~B~A~A

    C.BAA~B~A~A

    D.ABA~A~B~A


    正确答案:B

  • 第5题:

    有如下程序: #include

    usingnamespacestd; classA { public: A(){cout<<"A";} ~A(){cout<<"~A";} }; classB { A*P: public: B(){cout<<"B";p=newA;} ~B(){cout<<"~B";deleteP;} }; intmain() { Bobi; return0; } 执行这个程序的输出结果是( )。

    A.BAA~A~B~A

    B.ABA~B~A~A

    C.BAA~B~A~A

    D.ABA~A~B~A


    正确答案:B
    B。【解析】本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用子对象的构造函数输出B,P=newA再调用类A的构造函数输出A。析构函数的调用顺序和构造函数的调用顺序相反。