Eclipse c ++ метод не может быть решен

Заголовок:

#ifndef patientenliste_hpp
#define patientenliste_hpp

#include <vector>
#include <iostream>
#include "patient.hpp"
using namespace std;

class Patientenliste
{
private:
vector<Patient> liste;

public:
Patientenliste& operator+= (const Patient&);

friend ostream& operator<< (ostream&, const Patientenliste&);
};ostream& operator<< (ostream&, const Patientenliste&);

#endif

Исходный код:

#include "patientenliste.hpp"

Patientenliste::Patientenliste& operator+= (const Patient& p)
{
liste.push_back(p);
return *this;
}

ostream& operator<< (ostream& os, const Patientenliste& p)
{
for(auto& i : p.liste)
os << i;

return os;
}

Почему я должен поставить «Patientenliste ::» перед «liste» в определении оператора + = в исходном коде? Затмение не может решить это, но оно должно сделать, не так ли?
Хорошо работал с моим предыдущим проектом …

0

Решение

это

Patientenliste::Patientenliste& operator+= (const Patient& p)

должно быть

Patientenliste& Patientenliste::operator+= (const Patient& p)

Ты используешь Patientenliste:: поскольку оператор + = находится в области действия этого класса, т.е. является членом этого класса.

3

Другие решения


По вопросам рекламы [email protected]