- #include<iostream>
- using namespace std;
- template<class T> class Counted{
- static int count;
- public:
- Counted(){++count;}
- Counted(const Conted<T>&){++count;}
- ~Counted(){--count;}
- static int getCount(){return count;}
- };
-
- template<class T> int Counted<T>::count=0;
-
- class CountedClass:public Counted<CountedClass>{};
- class CountedClass2:public Counted<CountedClass2>{};
-
- int main(){
- CountedClass a;
- count<<CountedClass::getCount()<<endl; //1
- CountedClass b;
- count<<CountedClass::getCount()<<endl; //2
- CountedClass2 c;
- count<<CountedClass2::getCount()<<endl; //1
- }
curiously recurring template pattern
最新推荐文章于 2025-04-24 20:10:02 发布