Restricciones en funciones sobrecargadas

Varias restricciones rigen un conjunto aceptable de funciones sobrecargadas:

  • Las dos funciones en un conjunto de funciones sobrecargadas deben tener distintas listas de argumentos.

  • Sobrecarga ejecuta las listas de argumentos de los mismos tipos, en función de tipo de valor devuelto sólo, es un error.

    Específicos de Microsoft

Puede sobrecargar operador nuevo sólo en base de tipo de valor devuelto (específicamente, en función del modificador de modelo de memoria especificado.

Específico de Microsoft de FINAL

  • Las funciones miembro no se pueden sobrecargar sólo según una que es estática y otra no estáticos.

  • las declaraciones detypedef no definen nuevos tipos; presentan los sinónimos para los tipos existentes.No afectan al mecanismo que sobrecarga.Observe el código siguiente:

    typedef char * PSTR;
    
    void Print( char *szToPrint );
    void Print( PSTR szToPrint );
    

    las dos funciones anteriores tienen listas de argumentos idénticas.PSTR es un sinónimo de **char ***escrito.En el ámbito del miembro, este código generará un error.

  • Los tipos enumerados son tipos distintos y se pueden utilizar para diferenciar las funciones sobrecargadas.

  • Vea los tipos “matriz” y “puntero a” idénticos con el propósito de la distinción entre funciones sobrecargadas.Esto es true sólo para las matrices único dimensionadas.Por consiguiente, las funciones sobrecargadas siguientes están en conflicto y generan un mensaje de error:

    void Print( char *szToPrint );
    void Print( char szToPrint[] );
    

    Para multiplicar matrices dimensionadas, la segunda y todas las dimensiones sucesivas se consideran parte del tipo.Por consiguiente, se utilizan en la distinción entre funciones sobrecargadas:

    void Print( char szToPrint[] );
    void Print( char szToPrint[][7] );
    void Print( char szToPrint[][9][42] );
    

Vea también

Referencia

Información general de la sobrecarga