24/08/2015, 00:49
|
| | Fecha de Ingreso: octubre-2014 Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes 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. |