C++虚拟函数问题10

null

#include<iostream>
using namespace std;
class Base  {
public :
Base()    { cout<< "Constructor: Base" <<endl; }
virtual ~Base()   { cout<< "Destructor : Base" <<endl; }
};
class Derived: public Base {
public :
Derived()   { cout<< "Constructor: Derived" <<endl; }
~Derived()  { cout<< "Destructor : Derived" <<endl; }
};
int main()  {
Base *Var = new Derived();
delete Var;
return 0;
}


(A)

Constructor: Base
Constructor: Derived
Destructor : Derived
Destructor : Base

(B)

Constructor: Base
Constructor: Derived
Destructor : Base

(C)

Constructor: Base
Constructor: Derived
Destructor : Derived

(D)

Constructor: Derived
Destructor : Derived

答复: (A) 说明: 由于析构函数是虚拟的,因此调用派生类析构函数,而派生类析构函数又调用基类析构函数。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享