operator = überladen
-
ich verwende in meinem programm eine dynamische liste mit attributen (class Property). ich möchte erreichen, das der wert eines properties einem einfachen int übergeben werden kann.
Property p; int n; n = p;
zu diesem zweck wollte ich den = operator überladen:
int operator = (int& dst, Property& src) { // Wert zuweisen und zurückgeben }
leider kommt nun vom compiler die meldung "int operator=(int&, Property&)' must be a nonstatic member function"
eigentlich wäre ich der meinung gewesen, das ich so etwas schon mal gemacht habe. hab ich einen denkfehler, oder können = operatoren nur innerhalb von klassen überladen werden?
Compiler: MinGW
-
du kannst den Operator von "int" nicht überladen - da es ja keine Klasse ist.
aber du kannst den operator int() von Property überladen
class Property { int m_val; public: Property(int i): m_val(i) {} // ... operator int() const { return m_val; } }; // benutzung: Property p(42); int i = p;