Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/08/2015, 09:00
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: ¿Por qué no es obligatorio implementar una función privada?

Cita:
Iniciado por eferion Ver Mensaje
Si tu declaras una función en la parte privada de una clase dicha función pasa a ser accesible únicamente por la propia clase... su ámbito de uso es tremendamente limitado. En este caso, el compilador no dará error... esperará a encontrar un uso de dicha función para mostrarte un mensaje de error. Este comportamiento se aprovechaba hasta la llegada de C++11 para deshabilitar, por ejemplo, el constructor por defecto (basta con declararlo en la parte privada y olvidarse de la implementación... mientras no intentes llamarlo desde la propia clase el código compilará).

Si, en cambio, declaras la función en la parte pública esa función pasa a ser accesible desde cualquier parte del código... como es hasta posible que la clase acabe compilada en una librería (me da igual que fuese estática o dinámica) entonces el compilador obliga a que la función tenga implementación. Imagínate que compilas una DLL y no te da problemas... luego distribuyes esa DLL y los clientes se empiezan a quejar diciendo que no se puede usar tu DLL porque les da problemas de compilación...

Si el asunto no ha quedad claro se admiten preguntas :P

Un saludo.

Hola eferion:

Perfectamente explicado y entendido.
Sin embargo, tras mi último "descubrimiento", cambio la pregunta a:
¿Entonces por qué me deja tener una función NO implementada en la parte pública?
(Como en el ejemplo que pongo)
__________________
Mi calculadora en Qt