我正在尝试学习模板,我希望我的类对能够容纳两个任何类型的对象。我现在只想为 obj1 提供一个访问器函数。但是当我尝试编译时出现以下错误:
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;
}
最佳答案
pair 是标准类的名称,与 using namespace std
存在冲突。
几种解决方案:
- 将您的类(class)重命名为其他名称。
- 不要使用using语句
关于C++ 模板 - 错误 : expected initializer before '<' token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376913/