![]() |
Duda instanciando clases Según leía acá: http://www.mailxmail.com/curso/infor...capitulo18.htm Este es un tuto para clases y objetos. Código: class contadorPero no entiendo cual es la diferencia de instanciar una clase así: Código: contador c;Código: contador *p=new(contador);Decía que tiene una sutil diferencia, cual? |
Re: Duda instanciando clases Creo que era así: p->leer(); c.leer(); tienes dos objetos contador |
Re: Duda instanciando clases lo tengo claro... pero no entiendo cuales esa "sutil diferencia" que hay en las 2 formas. |
Re: Duda instanciando clases Ah ya, tu mismo ya lo tienes: cout<<p->leer(); Ah la diferencia es que tienes una variable tipo contador "c" y un puntero tipo contador *p Un puntero es una referencia a una dirección de memoria, en este caso la memoria es asignada dinámicamente y el puntero lo que tiene es la dirección de donde está el objeto. En el primer caso la memoria es asignada en direcciones seguidas |
Re: Duda instanciando clases Tu ejemplo es un caso sencillin... por lo que no estás "utilizando" la sutil diferencia de trabajar con punteros |
Re: Duda instanciando clases Entonces no se podría ocupar la flecha -> con el instanciado en una variable, y el punto . en el instanciado con punteros? |
Re: Duda instanciando clases Cita:
contador c; El objeto se crea desde que comienza el procedimiento en donde esta la declaracion, y este puede ser al comenzar el programa o una funcion(donde lo tengas declarado) y pues el constructor se ejecuta justo cuando se crea el objeto. Y para accesar a sus funciones miembro o a datos miembro publicos usas el punto. En caso de contador *p=new contador; Tienes un puntero en el que tu elijes exactamente el momento en que se crea el objeto. Asi puedes tener un puntero y solo usas la memoria necesaria cuando realmente lo necesites, como si ahorraras memoria. Para accesar a los miembor de un puntero a un objeto usas el operador de referencia(creo que asi se llama) que es el "->". La diferencia entre el punto y el -> es que el punto es como directo y el -> es para punteros ya que el puntero contiene la direccion y no los datos directamente. Saludos |
Re: Duda instanciando clases ok, está claro entonces. |
| La zona horaria es GMT -6. Ahora son las 00:32. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.