// C++ examples and requests from Klaus Berndl template class Vector { private: static T* v; int sz; public: T& elem(int i) {return v[i];} virtual ~Vector (); protected: Vector (); }; template <> class Vector { private: void** v; int sz; public: Vector (); virtual int func1(int i); virtual int func2(int i) = 0; static virtual int func3(int i) = 0; void*& elem(int i) {return v[i];} //... }; template class Vector : private Vector { public: typedef Vector Base; Vector () : Base() {} T*& elem(int i) {return static_cast(Base::elem(i));} //... }; class SomeName; class OtherName;