如果我们有一个标准类:
class Foo {
public:
int fooVar = 10;
int getFooVar();
}
Run Code Online (Sandbox Code Playgroud)
实施getFooVar()将是:
int Foo::getFooVar() {
return fooVar;
}
Run Code Online (Sandbox Code Playgroud)
但是在一个模板化的课堂上:
template <class T>
class Bar {
public:
int barVar = 10;
int getBarVar();
}
Run Code Online (Sandbox Code Playgroud)
实施getBarVar()必须是:
template <class T>
int Bar<T>::getBarVar(){
return barVar();
}
Run Code Online (Sandbox Code Playgroud)
为什么我们必须在template <class T>函数实现之前getBarVar和Bar<T>::(而不是Bar::)相反,考虑到函数不使用任何模板化变量的事实?