"Statische" Klasse als Operator-Parameter
-
Hallo,
ich hatte den Fall bisher noch nie und bin daher etwas ratlos, ob es überhaupt möglich ist:
Ich habe eine Klasse mit nur statischen Membern. Für diese würde ich gerne einen Operator überladen.
Also ungefähr sowas:
class Statisch { private: static std::stack<int> int_stack; friend operator << (Statisch, int&); }; std::stack<int> Statisch::inst_stack; static inline void operator << (Statisch, int& i) { Statisch::int_stack.push(i); }Funktioniert halt nur nicht

-
Wie soll dieser Operator denn benutzt werden?
-
MFK schrieb:
Wie soll dieser Operator denn benutzt werden?
Statisch << 77;
-
Funktioniert halt nur nicht

Beeindruckende Fehlerbeschreibung. Lies dir mal bitte den Thread "Du brauchst Hilfe?" durch und frag dann nochmal.
-
Das muss dann doch echt kein operator sein...
Operatoren machen nur Sinn, wenn du auch tatsächlich funktionierende (also keine Dummy-"Ich arbeite nur auf static private-Membern") Objekte hast.
Bei dir reicht vollkommen einefreie Funktion, bzw. weils ja doch eng mit der Klasse verknüpft ist und du dir so ein "friend" sparst, gleich als statische Funktion:class Statisch { private: static std::stack<int> int_stack; public: static void haenge_an(int); }; std::stack<int> Statisch::inst_stack; void Statisch::haenge_an(int i) { Statisch::int_stack.push(i); };
-
Natürlich muss das kein Operator sein. Ich wollte auch einfach nur wissen, ob es prinzipiell möglich ist hier einen Operator zu überladen.
-
void operator << (Statisch, int& i)1.Argument ist ein Statisch Objekt. Also brauchst für diesen Operator ein Statisch Objekt.
Statisch() << 42;Viel Sinn macht das allerding nicht.