Ver Mensaje Individual
  #37 (permalink)  
Antiguo 11/06/2015, 17:50
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 3 meses
Puntos: 38
Respuesta: ¿Para qué necesito un Constructor? (Sí, novato inside XD).

Los constructores se usan para dar un valor inicial a la hora de crear un objeto de la clase. Pero luego después se suele usar los seters para ello.

Una de las razones de peso de el porque se usa constructores puede ser por ejemplo a la hora de inicializar un objeto en caso de herencia. Si heredas una clase no vas estar inicializando cada variable a mano, no tendría sentido seria muy penoso.

Las clases pueden tener varios niveles de herencia, cosa que haría imposible darle un valor inicial de no ser por los constructores. Por eso los constructores solo se usan a la hora de crear el objeto y los seters se usan después junto con los demás métodos.

Un constructor incluso puede hacer uso de los geters y seters si así lo deseas. por ejemplo....
Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct cd {
  5. public:
  6.     cd ( float c, int d );
  7.     int getTotalcanciones() const;
  8.     void setPrecio(float unPrecio);
  9.     void setTotalcanciones(int nTotal);
  10.    
  11.    
  12. private:
  13.     float precio;
  14.     int totalcanciones;
  15. };
  16.  
  17. cd::cd ( float c, int d ) {
  18.     setPrecio(c);
  19.     setTotalcanciones(d);
  20. }
  21.  
  22. int cd::getTotalcanciones() const{
  23.     return totalcanciones;
  24. }
  25.  
  26. void cd::setPrecio(float unPrecio){
  27.     precio = unPrecio;
  28. }
  29. void cd::setTotalcanciones(int nTotal){
  30.     totalcanciones = nTotal;
  31. }
  32.  
  33. int main() {
  34.     cd cd2 ( 12, 15 );
  35.     cout << cd2.getTotalcanciones() << endl << endl;
  36.    
  37.     cin.ignore();
  38. }

La finalidad de los constructores te va quedar más clara con la herencia ya lo verás. Y por supuesto creo que te estás adelantando algo si aun estas en las estructuras, pues eso es tema de clases. No se si ya has pasado por los punteros.

En fin... Ten por seguro que la programación todo tiene un porque, nada esta ahí porque sí, creame, simplemente toma como se te explico y sigue adelante, por que son cosas que dependen de otras para entenderlo. si vieras el primer vídeo de clases entenderías lo que te digo, pues el que hace el vídeo lo dice igual que yo, parece que la finalidad de hacer una variable privada es poner trabas a la programación, pero no es así, necesitas seguir avanzando para entender el porque.
Tome como religión, si te dicen que eso es así tu palante >_<.