Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Zodiak98 en 28 Abril 2013, 18:16 PM

Título: Ayuda operador -> en C++
Publicado por: Zodiak98 en 28 Abril 2013, 18:16 PM
Hola bueno necesito saber que es exactamente el operador -> y cual es la diferencia entre -> y un puntero (*) porqué me puse a buscar y parece que tienen alguna referencia. :)
Título: Re: Ayuda operador -> en C++
Publicado por: Blaster en 28 Abril 2013, 20:33 PM
 Se usa para acceder a los miembros de una clase instanciada en memoria un ejemplo, si creas una variable string "cadena". Esta creando una instancia de la clase "String" llamada "cadena"
Para acceder a sus miembros/funciones miembro, debes poner un punto despues del nombre de la instancia, asi:
Código (cpp) [Seleccionar]
cadena.size();
cadena.append();
cadena.length();


Cuando creas una instancia en memoria, no se puede acceder de esa forma. Si no que debes usar " -> " que es el operador flecha, quedaria asi:
Código (cpp) [Seleccionar]
string *cadena = new string;

cadena->size();
cadena->append();
cadena->length();


Un Saludo!!  ;)
Título: Re: Ayuda operador -> en C++
Publicado por: 0xDani en 29 Abril 2013, 13:09 PM
En realidad todas las variables están en memoria xDD Querrías decir cuando creas una variable dinámicamente.

Saludos.
Título: Re: Ayuda operador -> en C++
Publicado por: Ferno en 29 Abril 2013, 19:33 PM
Más específicamente:

struct->campo == (*struct).campo

Ese struct puede ser tanto una estructura como un objeto (para acceder a los atributos de una clase, que bueno, a nivel máquina es una estructura también xD )