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 originalstruct punto{
int a=8;
int b=10;
};
int main(){
punto p;
cout << p.a << " " << p.b << " mostrando couts" << endl;
cin.sync();
cin.get();
return 0;
}
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.