Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con Struct anidado sencillo

Estas en el tema de Problema con Struct anidado sencillo en el foro de C/C++ en Foros del Web. Hola, soy nuevo en C++ Cuesta pero le voy a encontrando el gustito. Ahora me ha surgido una duda Cómo hago referencia a una estructura ...
  #1 (permalink)  
Antiguo 19/08/2015, 12:31
 
Fecha de Ingreso: septiembre-2014
Mensajes: 17
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta Problema con Struct anidado sencillo

Hola, soy nuevo en C++

Cuesta pero le voy a encontrando el gustito. Ahora me ha surgido una duda

Cómo hago referencia a una estructura dentro de otra?

Les pego el código:


Código:
#include <iostream>
#include <cstring>
using namespace std;

int main(){
    struct Direccion {
        int Id;
        int NumCalle;

    };

    struct Persona{
        struct Nombre{
            char Nombre[60];
            char Apellido[60];
        };
    Direccion Dir;
    int Telefono;
    };

    Persona Pablo;

    Pablo.Telefono = 40;
    cout << Pablo.Telefono<<endl;
    
    Pablo.Dir.Id = 2;
    Pablo.Dir.NumCalle = 3;
    cout <<Pablo.Dir.Id<<Pablo.Dir.NumCalle<<endl;
    

    Persona::Nombre NombreCompleto;

    strcpy(Pablo.NombreCompleto.Nombre, "Pablooooo"); //Aca es donde esta mal referenciado
    cout << Pablo.NombreCompleto.Nombre<<endl; //Y aca tambien

return 0;
}
No se como hacer para referenciar la estructura dentro de la estructura junto con "Pablo" que es de tipo Persona. Gracias de antemano.
  #2 (permalink)  
Antiguo 19/08/2015, 17:30
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Struct anidado sencillo

Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. struct Direccion {
  5.     int Id;
  6.     int NumCalle;
  7.    
  8. };
  9.  
  10. struct Persona {
  11.     struct Nombre {
  12.         char Nombre[60];
  13.         char Apellido[60];
  14.     };
  15.     Direccion Dir;
  16.     int Telefono;
  17. };
  18. int main() {
  19.     Persona Pablo;
  20.    
  21.     Pablo.Telefono = 40;
  22.     cout << Pablo.Telefono << endl;
  23.    
  24.     Pablo.Dir.Id = 2;
  25.     Pablo.Dir.NumCalle = 3;
  26.     cout << Pablo.Dir.Id << Pablo.Dir.NumCalle << endl;
  27.    
  28.    
  29.     Persona::Nombre NombreCompleto;
  30.    
  31.     strcpy ( NombreCompleto.Nombre, "Pablooooo" ); //Aca es donde esta mal referenciado
  32.     cout << NombreCompleto.Nombre << endl; //Y aca tambien
  33.    
  34.     return 0;
  35. }

Es eso? XD
  #3 (permalink)  
Antiguo 24/08/2015, 00:55
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Problema con Struct anidado sencillo

Y que tal así:

Opción 1:
Código C++:
Ver original
  1. struct Persona {
  2.     struct Nombre {
  3.         char Nombre[60];
  4.         char Apellido[60];
  5.     };
  6.     Nombre NombreCompleto;
  7.     Direccion Dir;
  8.     int Telefono;
  9. };

Opción 2:
Código C++:
Ver original
  1. struct Persona {
  2.     struct Nombre {
  3.         char Nombre[60];
  4.         char Apellido[60];
  5.     } NombreCompleto;
  6.     Direccion Dir;
  7.     int Telefono;
  8. };


Opción 3:
Código C++:
Ver original
  1. struct Nombre {
  2.     char Nombre[60];
  3.     char Apellido[60];
  4. };
  5.  
  6. struct Persona {
  7.     Nombre NombreCompleto;
  8.     Direccion Dir;
  9.     int Telefono;
  10. };

Código que te falla:

Código C++:
Ver original
  1. strcpy ( Pablo.NombreCompleto.Nombre, "Pablooooo" );
  2. cout << Pablo.NombreCompleto.Nombre << endl;
  #4 (permalink)  
Antiguo 24/08/2015, 10:01
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Struct anidado sencillo

Mejor. Podía usar anónimas también creo.¿No? =D
  #5 (permalink)  
Antiguo 24/08/2015, 14:00
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Problema con Struct anidado sencillo

Cita:
Iniciado por vangodp Ver Mensaje
Mejor. Podía usar anónimas también creo.¿No? =D
Por supuesto.

Etiquetas: char, int, sencillo, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:47.