C ++模板 - 错误:'<'之前的预期初始值设定项代币

时间:2013-12-04 13:39:51

标签: c++ templates

我正在尝试学习模板,我希望我的类对能够容纳任何类型的两个对象。我现在只想为obj1提供一个访问器功能。但是当我尝试complile时,我收到以下错误:

error: expected initializer before '<' token
    T1 pair<T1,T2>::getObj1()

我的代码是:

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

template <class T1, class T2>
class pair
{
  public:
    pair(const T1& t1, const T2& t2) : obj1(t1), obj2(t2){};

    T1 getObj1();

  private:
    T1 obj1;
    T2 obj2;
};

template <class T1, class T2>
T1 pair<T1,T2>::getObj1()
{
    return obj1;
}



int main()
{
    return 0;
}

1 个答案:

答案 0 :(得分:12)

pair是标准类的名称,而using namespace std则存在冲突。

几种解决方案:

  • 将您的课程重命名为其他内容。
  • 不要使用using语句