Ver Mensaje Individual
  #18 (permalink)  
Antiguo 15/04/2015, 17:40
dmorill
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: ¿Para qué necesito un Constructor? (Sí, novato inside XD).

Cita:
Iniciado por BramSt Ver Mensaje
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í?
Así es.

Cita:
Iniciado por BramSt Ver Mensaje
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...
Si, es una declaración de una estructura (si usas class sería de un objeto de la clase punto). Y al declararlo se llama al constructor automáticamente.

Cita:
Iniciado por BramSt Ver Mensaje
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"?
jeje por lo anterior pues no. Pero si el constructor tiene parámetros los llamas directamente cuando declaras la estructura u objeto. ej: punto(4, 5), punto(0, 0);

Cita:
Iniciado por BramSt Ver Mensaje
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.
Si al principio me molestaba también jeje, pero recuerda que puedes definirlas dentro también (dos de las 3 formas son dentro, declarando e implementando al mismo tiempo, por cierto estas formas de llaman funciones inline).

Por otro lado amchacon dice:

Cita:
Iniciado por amchacon Ver Mensaje
El problema que tiene eso, esque te olvides de llamar a la función (en c). Y ahí es cuando se liaba parda.

C++ plantea una mejora a este sistema, estas funciones pasan a llamarse constructores y se ejecutan siempre al crear una clase.
saludos"
Es decir que en c se tenían que llamar y en c++ lo hace automático el compilador. Así que no hay contradicción :D

Saludos

Última edición por dmorill; 15/04/2015 a las 17:53