Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/08/2015, 00:49
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años
Puntos: 204
Respuesta: ¿Por qué no es obligatorio implementar una función privada?

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.