Quelles sont les valeurs de retour par défaut pour l'opérateur
-
20-09-2019 - |
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: 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) class String {
char arr[16];
public:
operator<(const String& other) { return something1 < something2; }
operator[](int index) { return arr[index]; }
};
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
.