Probleme mit objekten in pair
-
hallo leute, bei mir kommt immer folgender Fehler:
[C++ Fehler] _pair.h(48): E2285 Keine Übereinstimmung für 'Any::Any(const Any)' gefunden
müsste das aber nich so gehen?
class Any { public: Any(); Any(int z){y=z;} Any(Any& data){y=data.y;} //copy ctor Any& operator=(Any& data){y=data.y;return *this;} //Any& operator=(int z){y=z;return *this;} void GetIt()const{cout<<y<<endl;} bool operator ==(Any& c){return y==c.y;} bool operator <(Any& c){return y<c.y;} friend bool operator==(Any &c, Any &d){return c.y==d.y;} friend bool operator<(Any &c,Any &d){return c.y<d.y;} private: int y; }; int main(int argc, char* argv[]) { pair<string,int> myPair("Test",10); //test pair<Any,int> myObPair(Any(5),10); getch(); return 0; }
-
Dein Compiler kann const hinzufügen, jedoch nicht wegnehmen. Deshalb sollte dein Copy-Konstruktor seinen Parameter als const definieren.
-
angebracht wäre es auch, wenn du die ganzen operatoren mit const-parametern aufrufst... ist einfach besserer programmierstil, da du die übergebenen objekte nicht modifizieren willst