@
dmorill bien, hasta ahora creo sacar en claro, según lo que dices, si yo no defino un constructor para mi estructura, el compilador de manera "escondida" haría algo parecido a punto p(), ¿cierto?
Por otro lado, en tu ejemplo, ¿por qué "punto p" daría error? Quiero decir, ¿no lo debería ver el compilador como una instanciación de la clase (o como se llame crear una variable de tipo "punto"), en vez de como una llamada al constructor?
De no existir el constructor, o si es que existe por efecto si yo no lo defino, creo que esa sintaxis funcionaría perfectamente...
Como ejemplo de lo que quiero decir, pillo uno que me pusisteis antes (observad los comentarios):
Código C++:
Ver originalstruct punto{
int _x = 0;
int _y = 8;
};
punto::punto(){//¿esto es llamar al constructor por defecto?
cout << _x << " " << _y << " Llamando al constructor." << endl;
}
int main(){
punto p;// por qué esto si funciona? no debería ser punto p()?;
cout << p._x << " " << p._y << " mostrando couts" << endl;
cin.sync();
cin.get();
return 0;
}
Y otra cosita, ¿en este ejemplo se usa el operador de ambito (::) .¿Por qué? ¿Por que se está accediendo directamente a un miembro de clase?
Gracias! Espero no preguntar burradas muy gordas XD
Igual es que lo que debería haber hecho es ver las estructuras sólo de manera superficial (o profunda, pero sin temas de constructores aún), y antes de meterme a rollos de constructores, aprender bien el tema de funciones, que de hecho era el siguiente en mi libro de Lógica después de matrices... ¿qué creéis?
Y perdonad si parezco demasiado efusivo o pregunto muchas cosas juntas, es que esto de la Programación me está gustando (y costando) mucho y quiero aprender me cueste lo que me cueste.