elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Operador de selección de miembro [?] [C++]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Operador de selección de miembro [?] [C++]  (Leído 2,346 veces)
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Operador de selección de miembro [?] [C++]
« en: 17 Marzo 2014, 19:09 pm »

Hola a todos, espero esten bien.
Quisiera que me ayuden con esta duda:
Si tengo las siguientes estructuras


Código
  1. struct carta{
  2.    int fig;
  3.    int num;
  4. };
  5.  
  6. struct nodo{
  7.    struct carta naipe;
  8.    struct nodo *sgte;
  9. };
  10.  
  11. typedef struct nodo NODO;
  12. typedef struct nodo* nodoPtr;
  13. nodoPtr MAZO = NULL;
  14.  

¿Cual seria la forma correcta de acceder a los datos fig y num? :-\

Código
  1.  
  2.     nodoPtr nuevo;
  3.     nuevo = new(NODO);
  4.     (nuevo->naipe).fig = 0;
  5.     (nuevo->naipe).num = 0;

Código
  1.    (nuevo->naipe)->fig = 0;
  2.  

Código
  1.    nuevo->(naipe.fig) = 0;
  2.  

Gracias  :)


« Última modificación: 17 Marzo 2014, 19:16 pm por free_c0de » En línea

La abstracción es la clave para lidiar con la complejidad.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Operador de selección de miembro [?] [C++]
« Respuesta #1 en: 17 Marzo 2014, 20:04 pm »

¿Vienes de Java? Lo digo por esto

Código
  1. nodoPtr nuevo;
  2. nuevo = new(NODO);

Esto no es valido ya que nuevo no es un puntero. Y aunque lo fuera esa no es la sintaxis del new:
http://www.cplusplus.com/reference/new/operator%20new%5B%5D/

Los objetos pueden crearse de forma local o dinamicamente con punteros. En el primer caso se usa el '.' para adceder a sus miembros, en el otro caso se usa el '->'


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Operador de selección de miembro [?] [C++]
« Respuesta #2 en: 17 Marzo 2014, 20:29 pm »

Gracias por contestar.
¿Vienes de Java? Lo digo por esto
No, apenas conozco C++. esa forma de implementar una pila la vi aqui http://casicodigo.blogspot.com/2012/10/pilas-en-c.html :
Código
  1. typedef nodo *PtrPila //Puntero tipo nodo, que luego lo inicializa a NULL
Y luego un puntero auxiliar:
Código
  1. ptrPila q = new (struct nodo);
Y para ahorrarme el "struct nodo" se me ocurrio hacer eso XD
Crear un tipo de dato puntero(nodoPtr) que apunte a un tipo de dato nodo. (Eso creo, pues si me a funcionado)
Pero bueno, no sabía que hiba contra la sintáxis de new  :P

Volviendo al código entonces sería algo asi:
Código
  1. nuevo->naipe.fig = 0;
Ya que 'naipe' no es un puntero  :-\
ahora mi duda es con respecto a los parentesis.
Código
  1. (nuevo->naipe).fig = 0;
ó
Código
  1. nuevo->(naipe.fig) = 0;
:huh: O no importa si lo pongo sin parentesis.
En línea

La abstracción es la clave para lidiar con la complejidad.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Operador de selección de miembro [?] [C++]
« Respuesta #3 en: 17 Marzo 2014, 22:15 pm »

En C++ no hace falta poner struct, eso es en C.

Con la sintaxis de new me refería a que no hace falta parentesis:
Código
  1. ptrPila* q = new nodo;

En cuanto a los parentesis:
Código
  1. nuevo->naipe.fig = 0;

Mal, fig es un objeto.

PD: Antes de empezar haciendo una pila. Deberías seguir algún tutorial de programación en C++, te faltan las bases del lenguaje.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Operador de selección de miembro [?] [C++]
« Respuesta #4 en: 17 Marzo 2014, 22:37 pm »

Creo que estoy aprendiendo en el orden y de la manera incorrecta.
Seguire tu consejo, Gracias.
En línea

La abstracción es la clave para lidiar con la complejidad.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Saludos nuevo miembro
Foro Libre
sqbydu 3 1,975 Último mensaje 13 Abril 2013, 16:43 pm
por z3nth10n
Problema operador asignación y operador asignación [struct] c++
Programación C/C++
luiggy2 2 3,046 Último mensaje 16 Octubre 2013, 23:35 pm
por luiggy2
Operador de seleccion -> en variable no puntero..
Programación C/C++
digimikeh 7 2,438 Último mensaje 13 Mayo 2019, 21:09 pm
por digimikeh
Sobrecarga operador+ y miembro puntero...
Programación C/C++
digimikeh 5 2,034 Último mensaje 19 Junio 2019, 05:22 am
por digimikeh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines