单选题 有如下程序: #inc1ude<iostream> using namespace std; c1ass TestClass{ public: ~TestClass (){cout<<"BASE";} }; c1ass TestClass1:public TestClass{ public: ~TestClass1 (){cout<<"DERIVED";} }; int main (){TestClass1 x;return 0;} 执行后的输出结果是( )。
【正确答案】 D
【答案解析】解析:程序中的TestClass1为TestClass的派生类,从程序中的main函数入手,定义了TestClass1对象x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出DERIVED,基类析构函数输出BASE。