Was sind die Standardrückgabewerte für Operator
-
20-09-2019 - |
Frage
Ich habe ein großes Visual Studio 6 C ++ Projekt geerbt, dass der Bedarf für VS2005 übersetzt werden. Einige der Klassen definierten Operator Ich bin mir bewusst, dass die C-Standard legt fest, dass der Standard-Rückgabetyp für normale Funktionen int ist, und ich nahm an VS6 vielleicht folgt, gewesen, aber würde dies gilt für C ++ Operatoren als auch? Oder könnte VS6 Figur aus dem Rückgabetyp auf seinem eigenen? Zum Beispiel definiert der Code eine benutzerdefinierte Zeichenfolge Klasse wie folgt: Would VS6 hat einfach gesagt die Rückgabetypen für beide als int, oder hätte es darauf hin, dass Betreiber klug genug zu Figur gewesen [] sollte ein Zeichen und Operator zurückgeben Natürlich habe ich Rückgabetypen fügen Sie diesen Code VS2005 C ++ konform zu machen, aber ich möchte sicherstellen, die gleiche Art wie zuvor angeben, um nicht sofort ändern das Verhalten des Programms (wir werden für die Kompatibilität zur Zeit ;. wir die Dinge standardisieren es später) class String {
char arr[16];
public:
operator<(const String& other) { return something1 < something2; }
operator[](int index) { return arr[index]; }
};
Lösung
operator<
gibt einen bool
standardmäßig aktiviert.
operator[]
kehrt int
standardmäßig (I denkt ), aber es sollte an Sicherheit grenzender Wahrscheinlichkeit zu Rückkehr geändert werden, was die Sammlung enthält. Für den String Beispiel Sie oben gab, das wäre ein char
oder wchar_t
sein.