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:

class String {
  char arr[16];
  public:
    operator<(const String& other) { return something1 < something2; }
    operator[](int index) { return arr[index]; }
};

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)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top