c++模板类作为基类-模板子类访问基类成员的方法
时间: 2024-09-23 15:12:07 浏览: 36
C++设计模式之模板方法模式(TemplateMethod)
在C++中,模板类作为基类时,模板子类可以像普通子类一样访问基类的成员。当你创建一个模板类,并在其内部定义了成员函数或数据成员,这些都可以被其模板子类所继承。当子类实例化为具体的类型时,它们可以调用基类模板的实例化版本。
例如:
```cpp
template <typename T>
class Base {
public:
void commonMethod(T value) { // 模板方法,所有子类都能访问
// ...
}
};
// 特定类型的子类
template <typename U>
class Derived : public Base<U> {
public:
void derivedSpecificMethod() {
// 调用基类的commonMethod
commonMethod(0); // U会被推导出来
}
};
```
在这个例子中,`Derived`类继承了`Base`的`commonMethod`,并在`derivedSpecificMethod`中调用了它。当我们创建`Derived<int>`或`Derived<string>`这样的特定类型实例时,`commonMethod`会根据`U`的实际类型进行相应的操作。
阅读全文