Por útlimo, he leído que todo en c++ en un objeto.
Lo del constructor, prueba declarándolo como private para que veas qué sucede.
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
Ahora quizás empiece a entender por qué anteriormente decíamos que un programa orientado a objetos se compone solmanete de objetos
double cantidad
CitarAhora quizás empiece a entender por qué anteriormente decíamos que un programa orientado a objetos se compone solmanete de objetos
Cita de: "Laurent" CitarAhora quizás empiece a entender por qué anteriormente decíamos que un programa orientado a objetos se compone solmanete de objetos C++ es un lenguaje multiparadigma. Y aca vemos como esa afirmacion en C++ no tiene ninguna base ya que los tipos primitivos como double (por usar tu ejemplo) no son clases.
Según tú, porque ahí declaremos una variable de un tipo primitivo entero, en Java no se puede afirmar que todo es un objeto?
Cita de: "Laurent" Según tú, porque ahí declaremos una variable de un tipo primitivo entero, en Java no se puede afirmar que todo es un objeto? No hay nada segun yo ... y no se a que viene Java ... si queres un lenguaje orientado a objetos puro podes usar Smalltalk.Lack of OO purityJava's primitive types are not objects. Primitive types hold their values in the stack rather than being references to values. This was a conscious decision by Java's designers for performance reasons. Because of this, Java is not considered to be a pure object-oriented programming language. However, as of Java 5.0, autoboxing enables programmers to write as if primitive types are their wrapper classes, and freely interchange between them for improved flexibility.http://en.wikipedia.org/wiki/Java_%28programming_language%29
Puesto que me dijiste que C++ era un lenguaje multiparadigma, supongo qoue lo dijiste porque c++ es una "mejora" del c(y c es un lenguaje estructurado)
sólo intente poner un ejemplo usando java, ya que, tengo entendido que Java es uno de los lenguajes que más recoge el modelo de POO. O por lo menos, más que c++ sí, o eso o me han dicho (mi experiencia como programador se limita a un poco de c, por eso repito tanto he leído o me han dicho, ya que no es por experiencia propia).
Mi inglés no es muy bueno, pero de ese texto desprendo que los tipos primitivos de datos, son sólo eso y no tienen nada de objetos, tanto en c++(por venir del c) tanto en Java (porque los programadores lo consideraron apropiado por temas de rendimiento).
Tal como lo dice EternalIdol C++ es multiparadigma y puedes tener un programa 100% estructrado o un programa POO ( aunque no 100% poo).
Eso sino se, hasta donde se un lenguaje orientado a objetos es aquel que implementa el paradigma de Objetos, en cuyo caso C++ no es 100% orientado a objetos, partiendo desde el uso de tipos primitivos ni lo es tampoco java , ignoro si C# o smalltalk si lo sean en un 100%.
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?
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.
Código: Text string nombre; 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 Citardouble cantidadcantidad es un objeto de la clase double?