• Sábado 9 de Noviembre de 2024, 03:33

Autor Tema:  necesito que alguien me explique conceptos ,POO  (Leído 1236 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
necesito que alguien me explique conceptos ,POO
« en: Miércoles 4 de Noviembre de 2009, 17:08 »
0
HOla, creo que aqui me pueden solucionar estas dudas, que me parecen esenciales para seguir programando en programacion orientada a objetos en c++, por ejemplo ,empezemos con los pasos por referencias en el constructor copia.
Yo me estoy guiando por un libro de teoria de c++ que me dice que el unico parametro que hay que pasarle al constructor copia se debe pasar por referencia.,y me dice que el constructor copia se invoca automáticamente al pasar un objeto por valor a una función.Por tanto si el objeto que recibe el constructor de copia como parámetro se pasase por valor, se invocaría automaticamente al constructor de copia para hacer una copia de ese objeto y se entraria en un bucle infinito.

mis preguntas..bucle infinito? eso no lo entiendo....

y despues es la utilizacion de const

porque en el constructor copia se pasa el parametro por const?

TPoro(const &p);

y algunos métodos fuera del método se pone const?

void MiMetodo(ixxxx) const ?

Si alguien que me diga algún enlace que yo pueda ver con ejemplos todo esto se lo agradecería.

Un saludo y espero respuesta.
Gracias.

Luis_Gomez

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: es
    • Ver Perfil
Re: necesito que alguien me explique conceptos ,POO
« Respuesta #1 en: Jueves 12 de Noviembre de 2009, 03:02 »
0
Hola pacorubio77,

Creo que puedo aclarar estas dudas que tienes.

En el constructor por copia, pasamos el parámetro por referencia. Lo del bucle infinito me ha dejado un poco perplejo, pero ante estas situaciones lo mejor es preguntarse cómo queremos usar las variables. Cuando se pasa un parámetro por referencia (al contrario de cuando lo hacemos por valor) no creamos ninguna copia de ese elemento. Eso está bien, porque lo que queremos es usar ese elemento original para asignar sus valores a la nueva variable que estamos creando con el constructor por copia.

Con un ejemplo se verá mucho mejor:

Código: Text
  1.  
  2. class Punto{
  3. public:
  4.     Punto(const Punto& p){ _x = p._x; _y = p._y; }
  5.     (...)
  6. private:
  7.     double _x, _y;
  8. };
  9.  
  10.  

¿Se entiende esto bien?

El uso de la palabra reservada const está recomendado en las ocasiones en las que sepamos a ciencia cierta que no se van a modificar las variables. Es más, yo cuando hago un método que sólo va a mostrar cosas por pantalla, le pongo al final const, porque sé que no va a modificar ninguna variable. Es una buena costumbre, así, con leer la cabecera del método vemos claramente que no va a hacer ningún cambio en ninguna variable.

Por ejemplo, métodos que suelo usar yo con la palabra const al final:

Código: Text
  1.  
  2. void EscribirMenu() const{
  3.     cout << "MENU PRINCIPAL" << endl;
  4.     cout << "1. Ver vector" << endl;
  5.     cout << "2. Ordenar vector" << endl;
  6.     cout << "0. Salir" << endl;
  7. }
  8.  
  9.  

Como no modifica nada, le digo que es un método const.

Nota: las funciones y los procedimientos de la Programación Estructurada se llaman métodos en Programación Orientada a Objetos.  

Espero haber ayudado con lo poco que sé.


Saludos.