• Jueves 14 de Noviembre de 2024, 17:09

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Laurent

Páginas: [1]
1
C/C++ / Re: Varias Dudas De C++
« en: Viernes 29 de Septiembre de 2006, 10:53 »
No me entiendas mal, no quiero llevarte la contraria así como así, sólo que estoy empezando con esto de la POO y estoy un poco saturado con toda la información que estoy mirando estos días. Hay muchas cosas que no logro enteneder, quizás a medida que avance pueda lograr ir solucionándolas

Cita de: "Eternal Idol"
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 purity
Java'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).

Un saludo

2
C/C++ / Re: Varias Dudas De C++
« en: Viernes 29 de Septiembre de 2006, 09:47 »
Hola:

Cita de: "Eternal Idol"
Cita de: "Laurent"
Citar
Ahora 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.
Entonces, en un lenguaje que sólo contemple el paradima de la POO, por ejemplo Java...

En java sepuede hacer algo así:

Código: Text
  1.  
  2. class ClaseEnteros {
  3.     int unEntero;
  4.     . . .
  5.     // define los métodos aquí
  6.     . . .
  7. }
  8.  
  9.  

Según tú, porque ahí declaremos una variable de un tipo primitivo entero, en Java no se puede afirmar que todo es un objeto?

Un saludo

3
C/C++ / Re: Varias Dudas De C++
« en: Viernes 29 de Septiembre de 2006, 08:52 »
Cita de: "Geo"
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?




Cita de: "Eternal Idol"
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:
Citar
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:

Código: Text
  1.  
  2. string nombre;
  3.  
  4.  
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
Citar
double cantidad
cantidad es un objeto de la clase double?

Un saludo y muchas gracias por vuestro tiempo.

4
C/C++ / Varias Dudas De C++
« en: Viernes 29 de Septiembre de 2006, 02:21 »
Hola:

Estoy estudiando POO con el lenguaje c++. Para ello voy siguiendo un libro, y a medida que voy aprendiendo cosas, van surgiendo dudas... Os cuento a ver si podéis iluminarme un poco sobre esto:


¿Qué diferencia hay entre declarar un constructor con la cláusula private y declararlo publico? Según tengo entendido, el constructor sólo es invocado cuando se crea un objeto de la clase a la que pertenece. Por lo tanto daría igual declararlo private o publico no?

Por ejemplo:
Código: Text
  1.  
  2. public: CCuenta() {
  3.  cout << "Objeto CCuenta creado\n";
  4. }
  5.  
  6.  
Dónde CCuenta es un constructor de la clase CCuenta.


Otra cosa...

Al declarar una sublcase, por ejemplo:
Código: Text
  1.  
  2. Class CCuentaAhorro : public CCuenta {};
  3.  
  4.  
En que influye ese public ahí?¿Y si en lugar de poner public ponemos private?


Por útlimo, he leído que todo en c++ en un objeto. Es decir, que una declaración de una variable local como hacemos en c:

double saldo;

Se supone que debo entender que saldo es un objeto  de la clase double? Con esto me lio un poco quizás porque no opuedo sacarme de la cabeza fácilmente a c, si alguién pudiera aclararme un poquito...


Y, ahora sí, lo último que no sé..

Esta sentencia que hace exactamente:
Código: Text
  1.  
  2. using namespace std;
  3.  
  4.  

Un saludo y gracias por vuestro tiempo  :hola:

Páginas: [1]