c++ - 为什么我们需要'模板' 在实现所有模板化类方法之前
问题描述
如果我们有一个标准类:
class Foo {
public:
int fooVar = 10;
int getFooVar();
}
的实现getFooVar()
将是:
int Foo::getFooVar() {
return fooVar;
}
但是在模板类中:
template <class T>
class Bar {
public:
int barVar = 10;
int getBarVar();
}
的实现getBarVar()
必须是:
template <class T>
int Bar<T>::getBarVar(){
return barVar();
}
考虑到函数不使用任何模板化变量这一事实,为什么我们必须在 and 的函数实现之前有一行template <class T>
(而不仅仅是 Bar::)?getBarVar
Bar<T>::
解决方案
你需要它,因为Bar
它不是一个类,它是一个模板。Bar<T>
是类。