Ver Mensaje Individual
  #17 (permalink)  
Antiguo 15/04/2015, 17:12
Avatar de BramSt
BramSt
 
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años, 8 meses
Puntos: 5
Respuesta: ¿Para qué necesito un Constructor? (Sí, novato inside XD).

Pues te felicito a ti también, @dmorill, la cosa se va aclarando... Me hacía falta algo como tus Highlights que me explique clarito las cosas.

El tema ese de la forma heredada fue lo que me terminó de trastornar ayer XD

Sólo hay una cosa que no pillo, así por encima:


Cita:
Son funciones que se llamaran siempre, al crear estructuras o objetos, tu no las llamas. Por eso si funciona "punto p" y no punto p().
Esto entronca con lo explicado por @amchacon, a quien le doy las gracias también desde aquí por supuesto, y se lleva su correspondiente +1 cuando acabe el post.

A ver si me he enterado entonces...

Cuando yo hago esto:


Código C++:
Ver original
  1. struct punto{
  2.  
  3.     int a=8;
  4.     int b=10;
  5.  
  6.  
  7.  
  8.  
  9. };
  10.  
  11. int main(){
  12.     punto p;
  13.     cout << p.a << " " << p.b << " mostrando couts" << endl;
  14.  
  15.     cin.sync();
  16.     cin.get();
  17.  
  18.     return 0;
  19. }

Estoy usando, sin saberlo (sin saberlo yo al menos XD), un constructor por defecto que el compilador crea y llama de forma automática, ¿no es así?

Es que primero necesito saber para aclararme:

punto p es una declaración de una variable u objeto de tipo "punto" (como un "int a" de toda la vida, vaya), o es un constructor en sí mismo? Es que claro, con eso de los constructores de copia que se asignaban como variables me descoloco un poco...

Después, en caso de ser un constructor, ¿es por su especial naturaleza de constructor que, al ser un constructor por defecto, se le llame usando "punto p" y no "punto p()" como entiendo que se haría con cualquier función sin parámetros "normal"?

Después también me choca que para definir el constructor fuera de la estructura, haya que volver a "redeclarar" sus parámetros, de tenerlos... pero eso supongo que es que me tengo que estudiar bien las funciones.

Última edición por BramSt; 15/04/2015 a las 17:18