如果父类是类模版,子类有2种方式继承父类:
- 指定具体类型,继承父类实例化类
- 子类可以定义成普通类
- 子类也可以定义成模版类
- 子类继承父类模版,子类必须定义成模版类,将模版参数传给父类
第1种情况:
Apple1
是普通类,继承模版实例化类Fruit<int>
Apple2
是模版类,继承模版实例化类Fruit<int>
template <typename T>
class Fruit {
public:
Fruit();
};
template <typename T>
Fruit<T>::Fruit() {
std::cout << "fruit template type :" << typeid(T)