小编Jam*_*age的帖子

在实现所有模板化类方法之前,为什么我们需要'template <class T>'

如果我们有一个标准类:

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>函数实现之前getBarVarBar<T>::(而不是Bar::)相反,考虑到函数不使用任何模板化变量的事实?

c++ templates

3
推荐指数
1
解决办法
112
查看次数

标签 统计

c++ ×1

templates ×1