Foro de elhacker.net

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
  1. cadena.size();
  2. cadena.append();
  3. 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
  1. string *cadena = new string;
  2.  
  3. cadena->size();
  4. cadena->append();
  5. 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 )