不能在类内使用模板?



我尝试实现一个接收参数类型为int和string的函数。所以我想到了模板。

头文件

template <typename T>
class SymbolTable {
public:
void run(string filename);
void insert(T value);
}

实现文件

template <typename T>
void SymbolTable::run(string filename)
{
cout << "success" << endl;
}
// Haven't implement "insert" yet!

编译器报告错误:

name followed by '::' must be a class or namespace name

如果我删除模板,它工作正常。任何建议吗?

这只是一个基本的语法错误。你的方法定义应该是:

template <typename T>
void SymbolTable<T>::run(string filename)
{
cout << "success" << endl;
}

如果你需要它,这里有一些语法正确的例子,关于如何在c++中使用不同的模板变体。

最新更新