问题
填空题
请将如下程序补充完整,使得输出结果为:bbaa #include <iostream> using namespace std; class A { public: 【14】 {cout << "aa"; } }; class B: public A{ public:~B(){ cout << "bb"; } }; int main () { B *p= new B; delete p; return 0; }
答案
参考答案:~A()
解析: 本题考查的知识点是:类的构造与析构。本题要求的输出结果中包含aa,所以基类A中填空位置处的函数一定要被执行。但主函数中仅仅创建了一个B类对象,然后释放了它,并没有调用什么函数。所以可以肯定填空处一定是要定义基类的构造或者析构函数。如果定义的是构造,那么盼肯定在new操作的时候就会被输出,而下面的bb是在析构函数中,会在delete时被输出。故可肯定应填入基类A的析构函数定义:~A()。