基类是类模板,派生类仍然是类模板时:
template<typename T>
class Vec: public BASE<T> // ① 要写<T>
{
public:
Vec(int n = 0, const T* x = NULL):BASE <T>(n, x) {}
void show();
};
template<typename T>
void Vec<T>show() // ② 类模板类外定义函数写法:要写<T>
{
cout << this->n; // ③ 当基类为类模板,派生类仍为类模板时,派生类使用继承来的数据成员时须用this
}
PS:
① 继承时基类要写<T>
② 类模板类外定义函数写法:要写<T> (只要是类模板时,类外都这么写)
③ 当基类为类模板,派生类仍为类模板时,派生类使用继承来的数据成员时须用this