Lo del constructor, prueba declarándolo como private para que veas qué sucede.
Ok, lo he probado y el compilador se queja diciendo que no tiene acceso al método que define el constructor. Debo de entender que no tiene acceso puesto que la llamada al método se hace desde una función externa, en este caso main, verdad?
Esto me hace reflexionar sobre algo; si todos los miembros de una clase(atributos y métodos) son privados, esta clase no podría ser usada por ningun objeto de ninguna otra clase, subclase o función externa no? Porque todos sus miembros serían inaccesibles. Porque para acceder a los atributos privados, se usa la interfaz de la clase(métodos declarados como públicos), pero si queremos acceder a métodos privados, como el caso del constructor, habría alguna solución?
Todas las otras preguntas deberian estar respondidas en el libro a menos que esto tambien lo dijera ese libro laugh.gif laugh.gif laugh.gif
Hombre, supongo que si me leo las 700 hojas del libro, todas esas preguntas y más deberán de estar respondidas. Ahora bien, a medida que voy leyendo me surgen dudas y si esas dudas las voy aclarando desde el principio, seguro que con avanzo una base más sólida y a lo que va viniendo, seguro que le saco más provecho y lo asimilo mejor. O eso creo.
Más bien lo que dice el libro es:
Después de explicar como crear un objeto y unas cosas más suelta:
Ahora quizás empiece a entender por qué anteriormente decíamos que un programa orientado a objetos se compone solmanete de objetos
Y si C++ está orientado a objetos, pues 2+2 son 4.
A mí me han explicado, que en c++ se puede programar como si lo hicieras en c, pero yo estoy aprendiendo POO no un lenguaje estructurado, por ello quiero olvidarme de C, he intentar hacer las cosas como se hacen en un lenguaje orientado a objetos. Si C++ soporta clases, objetos, métodos, atributos, herencia, etc... digo yo que se podrá progrmar usando sólo objetos... es decir, algo asi:
No se podría decir, que nombre es un objeto de la clase string¿?
De hecho si usamos el método length (por decir alguno), se usaría:
nombre.length()
ESo no se podría decir que lenght es un método de la clase string?
En el caso que esto sea cierto, no se podría decir que
double cantidad
cantidad es un objeto de la clase double?
Un saludo y muchas gracias por vuestro tiempo.