继承模板 - C++
Inherited Templates - C++
我有一个模板库 class 和一个继承的 class。 baseclass 中有一个函数可以接受不同的类型,我预计我会从继承的 class 中调用它 'BaseClass::Add();' 但我却收到错误“expected primary- “>”标记前的表达式。
如何用 U 呼叫 BaseClass::Add?
template <typename T>
class BaseClass
{
public:
template <typename U>
void Add() {
// Do stuff
}
};
template <typename T>
class InheritedClass : public BaseClass<T>
{
public:
template <typename U>
void Add() {
BaseClass<T>::Add<U>(); // Error here
}
};
提前致谢
使用这个语法
BaseClass<T>::template Add<U>()
我有一个模板库 class 和一个继承的 class。 baseclass 中有一个函数可以接受不同的类型,我预计我会从继承的 class 中调用它 'BaseClass::Add();' 但我却收到错误“expected primary- “>”标记前的表达式。
如何用 U 呼叫 BaseClass::Add?
template <typename T>
class BaseClass
{
public:
template <typename U>
void Add() {
// Do stuff
}
};
template <typename T>
class InheritedClass : public BaseClass<T>
{
public:
template <typename U>
void Add() {
BaseClass<T>::Add<U>(); // Error here
}
};
提前致谢
使用这个语法
BaseClass<T>::template Add<U>()