如何实现对一组类的实例化对象个数进行统计

来源:百度知道 编辑:UC知道 时间:2024/09/26 00:28:26
如果要实现对一个类的实例的个数的统计,用静态数据成员即可(构造函数加一,析构函数减一)。那么,用什么方法可以实现对一组类的上述功能呢?
例如,父类是生物类,子类是:鸟、鱼、马;更下一层的子类是:鸽子、乌鸦;鲨鱼、金鱼;大宛马、汗血宝马;如何用一个好的方法实现对每一个类的实例化对象的个数统计?
(不要告诉我在每一个类中都手动写一个静态数据成员...)

在父类用静态数据成员就可以了,析构函数要写成虚函数

在构造子类的时候必定会先构造父类
#include <iostream>
using namespace std;
class A
{
private:
int i;
public:
static int count;
A()
{
count++;
}
};
class B:A
{
private:
int a;
};
int A::count=0;
int main()
{
A a[10];
cout<<A::count<<endl;
B b[10];
cout<<A::count<<endl;
system("pause");
}