Ich überladen einen Operator zweimal mit der gleichen Parameterliste. aber mit unterschiedlichem Rückgabetyp:C++ - Überlastoperator zweimal, eine Rückgabe nicht-const Referenz und die andere Konstante const, was ist die Präferenz?
T& operator()(par_list){blablabla}
const T& operator()(par_list){blablabla}
Also, wenn ich den Operator() bin Aufruf, die Funktion basierend auf welchen Vorlieben oder Situation genannt werden würde? Ich weiß, dass, wenn ich() unter const Funktion rufe, es die Konstante T & eins sein muss.
Ich bin nur neugierig, wie C++ mit einer solchen Situation umgehen und wie die Standardpräferenz funktioniert.
Dank
Der Begriff ist * Überlastung * und Nr. – chris
C++ Unterbindet Überlast nach Rückgabetyp. Man könnte gehen in das, was es tun könnte/sollte, aber es spielt keine Rolle. Ein Trick besteht darin, die Methode const zu machen, wenn der Rückgabetyp const ist, da dieser überladen werden kann. Mein Gedächtnis ist die const-Methode ist bevorzugt, mit non-const genannt const Call wäre nicht legal. – Joe