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:

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

¿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)

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top