¿Cuáles son los valores de retorno por defecto para el operador
-
20-09-2019 - |
Pregunta
He heredado un gran proyecto de Visual Studio 6 C ++ que necesita ser traducido para VS2005. Algunas de las clases definido por el operador Soy consciente de que el estándar C especifica que el tipo de retorno por defecto para las funciones normales es de tipo int, y asumí VS6 podría haber sido después de eso, sino que iba a aplicar esto a los operadores de C ++, así? O podría VS6 averiguar el tipo de retorno sobre su propio? Por ejemplo, el código define una clase de cadena personalizada como esto: ¿Podría VS6 simplemente han puesto los tipos de retorno tanto como int o habría sido lo suficientemente inteligente como para darse cuenta de que el operador [] debe devolver un char y el operador Por supuesto que tengo que añadir tipos de retorno para hacer este código VS2005 C ++ compatible, pero yo quiero estar seguro de que especificar el mismo tipo que antes, ya que cambiar no de inmediato el comportamiento del programa (vamos para la compatibilidad en el momento ;. que vamos a estandarizar las cosas más adelante) class String {
char arr[16];
public:
operator<(const String& other) { return something1 < something2; }
operator[](int index) { return arr[index]; }
};
Solución
operator<
devuelve un bool
por defecto.
Los rendimientos operator[]
int
por defecto (I piensan ), pero debe ser cambiado casi seguro que volver sea cual sea la colección contiene. Para el ejemplo de cuerda que le dio anteriormente, que sería una char
o wchar_t
.