000
21.07.2015, 19:54 Uhr
Tyroka
|
Hallo Leute, Ich habe versucht ein Inventar in Form einer Liste zu coden, welches Objekte der Klasse ingredient enthält. Nun möchte ich diesem Inventar ein Objekt hinzufügen, dafür prüfe ich zunächst ob es bereits in der Liste enthalten ist.
Ich bekomme aber immer folgenden Error: (Ich nutze Microsoft Visual Studio) error C2678: Binärer Operator '==': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'ingredient' akzeptiert (oder keine geeignete Konvertierung möglich) cprogram files (x86)\microsoft visual studio 12.0\vc\include\xutility
Ich habe das Gefühl, dass man Objekte nicht auf Gleichheit untersuchen kann, stimmt dass? (Ich habe nur den wichtigen Teil des codes gepostet)
Danke im Vorraus für eure Hilfe! Lg Tyroka
C++: |
//ingredient.h #include <iostream> #include <string>
class ingredient { private: string name; public: ingredient(string const &a) : name(a) { } string getName(){ return name; } };
|
C++: |
//mainfile.cpp #include <list> #include <algorithm>
#include "ingredient.h"
ingredient moonweed("moonweed") list <ingredient> invList = { moonweed };
bool Contains(ingredient x){ if (find(invList.begin(), invList.end(), x) == invList.end()){ return false; } return true; }
void addtoInventory(ingredient i, int c){ //c = Anzahl if (Contains(i) == true){ std::cout << "Vorhanden!"; invList.push_back(i); } i.addCount(c); }
int main(){ addtoInventory(moonweed, 4); }
|
Dieser Post wurde am 21.07.2015 um 20:03 Uhr von Tyroka editiert. |