• Sábado 14 de Diciembre de 2024, 21:56

Autor Tema:  Dudas sencillas de objetos (c++)  (Leído 868 veces)

purifuri69

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Dudas sencillas de objetos (c++)
« en: Martes 1 de Diciembre de 2009, 19:36 »
0
Hola.

Son 2 preguntas conceptuales sencillas y basicas .

Partimos de que tenemos una clase punto, entonces a la hora de hacer el constructor, podemos hacer algo asi:

class punto {
public:

punto (double a = 1, double b = 1) : _x(a), _y(b) {}

{...}

(_x y _y son atributos privados)

La pregunta es, que es exactamente a y b?, me refiero, eso cuando te declaras un objeto punto, si le pasas a y b (o solo a), te crea el objeto asignando a x el valor de a y analogamente para b, y si no le pasas los parametros, inicializan _x e _y a 1, pero como funciona por dentro, para que ese constructor funcion asi, y para que ese constructor también valga para "punto (double a = 1): _x(a), _y(1)" y también pueda hacer lo mismo que "punto(): _x(1), _Y(1)"??

La segundo pregunta es:

El constructor de copia, lo puede hacer automaticamente el compilador (supongo que dependera el como se haga el compilador), al menos el que use visual studio y c builder, haciendo una copia bit a bit, pero que en ambos los objetos apuntan a la misma direccion de memoria. Lo que no entiendo es si se hace una copia, en la memoria deben estar los datos por duplicado, en dos zonas de memorias distintas, entonces ¿porque la copia y la original apuntan al mismo sitio?, y que pasa con lo que se a copiado, si nadie apunta a esa zona de memoria, se queda esa zona de memoria inutilizable?, o lo marca el sistema como memoria liberada?... no entiendo muy bien...