Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/08/2015, 01:36
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: ¿Por qué no es obligatorio implementar una función privada?

Hola vangodp:

Realmente mi duda es mucho mas tonta que todo eso.
Es simplemente que me llama la atención el hecho de que yo puedo crear una clase, definir un método privado, no implementarlo, y que el compilador no se queje por ello, cosa que no ocurre con un método declarado en la zona pública, en el que tengo que implementarlo o si no el compilador me dará error.

De todas formas acabo de probar y en C::B me deja declarar funciones en cualquier parte (pública y privada) y no implementarlas. Y el compilador no se quejará de ello, excepto si una instancia de la clase hace uso de un método no implementado.

Es decir, puedo hacer esto:
Código C++:
Ver original
  1. #include<iostream>
  2.     using namespace std;
  3.  
  4.     class miClase
  5.     {
  6.     public:
  7.         miClase(){}
  8.         void miMetodo();
  9.  
  10.     private:
  11.  
  12.     };
  13.  
  14.     int main()
  15.     {
  16.         miClase eme;
  17.         //eme.miMetodo();
  18.  
  19.     }

Pero si descomento la última línea, el compilador se quejará porque obviamente no está implementado el método.

Sin embargo en Qt no me deja tener funciones no implementadas en la zona pública aunque sí en la privada. Es un comportamiento un poco diferente.
Miraré a ver si se trata de alguna opción del compilador, porque tanto mi C::B como mi Qt compilan con gcc.

Bueno, muchas gracias por la respuesta. Ya entiendo por fin el patrón Singleton
__________________
Mi calculadora en Qt