C++-sjabloon – fout: verwachte initialisatie vóór ‘<‘ token

Ik probeer meer te weten te komen over sjablonen, ik wil dat mijn klassenpaar twee objecten van elk type kan bevatten. Ik wil nu alleen een accessor-functie voor obj1 bieden. Maar ik krijg de volgende foutmelding wanneer ik probeer te compileren:

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

Mijn code is:

#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;
}

Antwoord 1, autoriteit 100%

paar is de naam van een standaardklasse en met de using namespace std is er een botsing.

Verschillende oplossingen:

  • Hernoem je klas naar iets anders.
  • Gebruik het statement gebruik niet

LEAVE A REPLY

Please enter your comment!
Please enter your name here

1 × five =

Other episodes