Question

J'ai hérité un grand Visual Studio 6 C ++ projet qui doit être traduit pour VS2005. Certaines des classes opérateur défini

Je suis conscient que la norme C précise que le type de retour par défaut pour les fonctions normales est int, et je supposais VS6 aurait pu être la suite, mais serait-ce applicable aux opérateurs de C ainsi? Ou peut-VS6 déterminer le type de retour lui-même?

Par exemple, le code définit une classe de chaîne personnalisée comme ceci:

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

Would VS6 ont mis simplement les types de retour pour les deux comme int, ou aurait-il été assez intelligent pour comprendre que l'opérateur [] doit retourner un omble chevalier et l'opérateur

Bien sûr, je dois ajouter des types de retour pour faire ce code VS2005 C ++ compatible, mais je veux vous assurer de spécifier le même type que précédemment, que de ne pas modifier immédiatement le comportement du programme (nous allons pour la compatibilité au moment ;. nous allons standardisons les choses plus tard)

Était-ce utile?

La solution

operator< renvoie une bool par défaut.

retourne operator[] int par défaut (I pense ), mais il devrait certainement être changé pour retourner quelle que soit la collection contient. Pour l'exemple de chaîne que vous avez donné ci-dessus, ce serait un char ou wchar_t.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top