[EMAIL PROTECTED] wrote: > I am no C++ expert but i guess there might be some in the Python and > C++ newsgroups. >
Provide compilable code that exibits your problem. The technique is sound; you must be screwing up somehow. #include <iostream> using namespace std; template <typename T> class counted { static int count; public: counted() { ++ count; } counted(const counted<T> &) { ++ count; } virtual ~counted() { -- count; } static int getCount() { return count; } }; template <typename T> int counted<T>::count = 0; class C1 : public counted<C1> { public: C1() : counted() {} }; class C2 : public counted<C2> { public: C2() : counted() {} }; int main(void) { C1 c11; C1 c12; C2 c2; cout << C1::getCount() << endl; cout << C2::getCount() << endl; int c; cin >> c; return 0; } output is 2 and 1 as expected. Removing the constructors in the derivatives doesn't change that fact. -- http://mail.python.org/mailman/listinfo/python-list