Eclipse c ++方法无法解析

时间:2014-11-10 16:07:03

标签: c++ methods resolve

部首:

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

为什么我要把&#34; Patientenliste ::&#34;之前&#34;听&#34;在运营商定义中+ =在源代码中? Eclipse无法解决它,但它应该这样做,不是吗? 我以前的项目工作得很好......

1 个答案:

答案 0 :(得分:3)

这个

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

应该是

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

您正在使用Patientenliste::,因为operator + =在该类的范围内,即该类的成员。