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

Array de objetos

Estas en el tema de Array de objetos en el foro de C/C++ en Foros del Web. Hola soy nuevo programando en c++ y estoy un poco confundido. Lo que pasa es lo siguiente tengo declarada una clase Cliente con sus atributos,metodos ...
  #1 (permalink)  
Antiguo 16/01/2011, 11:07
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 3 meses
Puntos: 10
Array de objetos

Hola soy nuevo programando en c++ y estoy un poco confundido. Lo que pasa es lo siguiente tengo declarada una clase Cliente con sus atributos,metodos

todo bien hasta ahi, cuando voy a llenar los datos es donde tengo el error, no se como llenar el array, aqui el codigo que llevo:
Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //Clase clientes
  5. class Cliente{
  6.       private:
  7.           int codigo;
  8.           string nombre;
  9.  
  10.  
  11.       public:
  12.          Cliente();
  13.          int getCodigo();
  14.          string getNombre();
  15.          void setCodigo(int);
  16.          void setNombre(string);
  17.  
  18. };
  19. //Constructor
  20. Cliente::Cliente(){}
  21. //Metodos
  22. void Cliente::setCodigo(int x){ int cod; cod = x;}
  23. int Cliente::getCodigo(){ return cod; }
  24. void Cliente::setNombre(string n){ string nombre; nombre = n;}
  25. string Cliente::getNombre(){ return nombre; }
  26. /////////////////////////////////////////////////////////////
  27. int main()
  28. {
  29.  
  30.     Cliente cli[3];
  31.     int i;
  32.  
  33.     for(i=0;i<3;i++)
  34.     {
  35.         cout << "Nombre de la persona " << i+1 << endl;
  36.        
  37.     }
  38.     return 0;
  39. }

como pueden ver en quede en el cout, penc que se podia llenar igual que en java e intente cin >> cli[i].setNombre(); pero no funciona, alguien me puede ayudar? gracias de antemano

Última edición por gorystyle; 16/01/2011 a las 11:22
  #2 (permalink)  
Antiguo 16/01/2011, 13:33
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Array de objetos

crea un string auxiliar

(despues del cout)
cin >> aux;
cli[i].setNombre(aux);



una pregunta,

void Cliente::setNombre(string n){ string nombre; nombre = n;}

por que creas un string que se llama igual que un atributo de la clase?

no se podria hacer directamente asi?:

void Cliente::setNombre(string n){ nombre = n;}
  #3 (permalink)  
Antiguo 16/01/2011, 16:57
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Array de objetos

Cita:
Iniciado por Munire Ver Mensaje
crea un string auxiliar

(despues del cout)
cin >> aux;
cli[i].setNombre(aux);



una pregunta,

void Cliente::setNombre(string n){ string nombre; nombre = n;}

por que creas un string que se llama igual que un atributo de la clase?

no se podria hacer directamente asi?:

void Cliente::setNombre(string n){ nombre = n;}
Gracias por tu ayuda jeje y si efectivamente se puede hacer de la forma que tu dices usando el atributo directamente.. gracias
aa y faltaba agregar tambien la libreria string.

otra duda que tengo aqui esta el programa ya:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. //Clase clientes
  6. class Cliente{
  7.       private:
  8.           int codigo;
  9.           string nombre;
  10.  
  11.  
  12.       public:
  13.          Cliente();
  14.          int getCodigo();
  15.          string getNombre();
  16.          void setCodigo(int);
  17.          void setNombre(string);
  18.  
  19. };
  20. //Constructor
  21. Cliente::Cliente(){}
  22. //Metodos
  23. void Cliente::setCodigo(int x){ codigo = x;}
  24. int Cliente::getCodigo(){ return codigo; }
  25. void Cliente::setNombre(string n){ nombre = n;}
  26. string Cliente::getNombre(){ return nombre; }
  27. /////////////////////////////////////////////////////////////
  28. int main()
  29. {
  30.  
  31.     Cliente cli[3];
  32.     int i,codigo;
  33.     string nombre;
  34.  
  35.     for(i=0;i<3;i++)
  36.     {
  37.         cout << "Nombre de la persona " << i+1 << endl;
  38.         cin >> nombre;
  39.         cli[i].setNombre(nombre);
  40.         cout << "Codigo de la persona " << i+1 << endl;
  41.         cin >> codigo;
  42.         cli[i].setCodigo(codigo);
  43.     }
  44.     cout << "Ahora a mostrar los clientes." << endl;
  45.     for(i=0;i<3;i++)
  46.     {
  47.         cout << "El codigo de la persona " << i+1 << " es: " << cli[i].getCodigo() << endl;
  48.         cout << "La persona " << i+1 << " se llama: " << cli[i].getNombre() << endl;
  49.     }
  50.     system("pause");
  51.     return 0;
  52. }

quisiera saber poruqe he visto videos en los q programan en visual c++ y no necesitan agregar al final "system("pause")" para que el programa haga una pausa, yo uso visual c++ express 2010 y tengo que colocar eso porque sino el programa no espera nada y se cierra.. pq será ?? y otra cosa como hago para limpiar pantalla? Gracias de antemano

Etiquetas: objetos
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 18:33.