Я пытаюсь узнать о шаблонах, хочу, чтобы моя пара классов могла содержать два объекта любого типа. Я просто хочу теперь предоставить функцию доступа для obj1. Но я получаю следующее сообщение об ошибке при попытке complile:C++ template - error: ожидаемый инициализатор перед '<' token
ошибка: ожидается инициализатор до того «<» лексем пары T1 :: 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;
}
попробуйте удалить точку с запятой после конструктора. –
Нет, это не исправить, спасибо! – DukeOfMarmalade
Вы сталкиваетесь с [std :: pair] (http://en.cppreference.com/w/cpp/utility/pair), вместо этого попробуйте что-то вроде «mypair». –