/*! A template class */ template class Test { public: Test(); Test(const Test &); friend void friendTempFunc(Test &, int=5); }; /*! complete specialization */ template<> class Test { public: Test(); }; /*! A partial template specialization */ template class Test< T * > : public Test { public: Test(); }; /*! The constructor of the template class*/ template Test::Test() {} /*! The copy constructor */ template Test::Test(const Test &t) {} /*! A friend function of a template class */ template void friendTempFunc(Test &t,int a) {} /*! The constructor of the specilization */ template<> Test::Test() {} /*! The constructor of the partial specilization */ template Test::Test() {}