今天看了“C++”编程思想的模板模块,有一个应用计数的好方法分享给大家。代码来自<<C++编程思想>> ---p624
template<class T> class Counted {
static int count;
public:
Counted() { ++count; }
Counted(const Counted<T>&) { ++count };
~Counted() {--count;}
static int getCount() { return count; }
};
templete<class T> int Counted<T>::count = 0;
class CountedClass1:public Counted<CountedClass1> {};
class CountedClass2:public Counted<CountedClass2> {};
因为假如不使用模板,也就是导致基类是一个唯一的,会造成多个子类使用同一个static int count;而产生错误;
如上这种方式,使用模板,使子类继承的基类都是一个唯一的,都有自己的static int count这样就不会出错。