---------------以下是心得--------------
完成这一题,才晓得自己对于派生类和基类的之间的关系还弄的不清楚,因此专门总结了一下:关于派生类和基类,虚函数表
---------------以下是题目---------------
描述
通过填空使得程序输出的结果符合下面的要求。
#include <iostream>
#include <map>
using namespace std;
// 在此处补充你的代码
int A::count = 0;
void func(B b) { }
int main()
{
A a1(5),a2;
cout << A::count << endl;
B b1(4);
cout << A::count << endl;
func(b1);
cout << A::count << endl;
A * pa = new B(4);
cout << A::count << endl;
delete pa;
cout << A::count << endl;
return 0;
}
输入
不需要输入。
输出
使得程序的输出结果是:
2
3
B::destructor
A::destructor
3
4
B::destructor
A::destructor
3
B::destructor
A::destructor
A::destructor
A::destructor
---------------以下是填充的代码---------------
class A {
int n;
public:
static int count;
A(int n_) :n(n_) { count++; };
A() { count++; }
A(A &n_){ count++; }
virtual ~A()
{
count--;
cout << "A::destructor" << endl;
}
};
class B:public A{
int n;
public:
B(int n_) :n(n_) { }
~B()
{
cout << "B::destructor" << endl;
}
};