' 在实现所有模板化类方法之前,c++,templates"/>

首页 > 解决方案 > 为什么我们需要'模板' 在实现所有模板化类方法之前

问题描述

如果我们有一个标准类:

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::)?getBarVarBar<T>::

标签: c++templates

解决方案


你需要它,因为Bar它不是一个类,它是一个模板Bar<T>是类。


推荐阅读