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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Almacenar objetos dentro de otra clase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Almacenar objetos dentro de otra clase  (Leído 1,945 veces)
D3US

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Almacenar objetos dentro de otra clase
« en: 1 Agosto 2021, 19:13 pm »

Hola y saludos:
Como almaceno en el vector lista el Objeto Persona y como accedo a esa informacion cuando la necesite.
Gracias de antemano.

#include <iostream>
#include <vector>
#include <conio.h>
#include <string>

using namespace std;

class Persona{
    private:
        string  nombre;
    public:
        Persona(string nombre){
            setNombre(nombre);
        }
        void setNombre(string _nombre){
            nombre = _nombre;
        }
        string getNombre(){
            return nombre;
        }
};

class Trabajo{
    private:
        float salario;

        vector <Trabajo> lista;

    public:
        Trabajo(string nombre, float salario){
            setSalario(salario);
        }
        void setSalario(float _salario){
        salario = _salario;
        }
        float getSalario(){
            return salario;
        }

};
int main(){

return 0;
}



En línea

BloodSharp


Desconectado Desconectado

Mensajes: 803


El Messi-Vegeta :D


Ver Perfil
Re: Almacenar objetos dentro de otra clase
« Respuesta #1 en: 1 Agosto 2021, 21:12 pm »

Como almaceno en el vector lista el Objeto Persona y como accedo a esa informacion cuando la necesite.

Te corregí un poco el programa, el salario debería tenerlo cada persona en lugar de la clase Trabajo. Por otro lado es buena práctica evitar el uso de using namespace std;.
Finalmente tenés que crear una estructura temporal la cuál vas a agregar los datos que necesites y luego apilar en el vector cada persona:

Código
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. class Persona
  6. {
  7.    private:
  8.        std::string nombre;
  9.        float salario;
  10.  
  11.    public:
  12.        Persona()
  13.        {
  14.            this->nombre.assign("SinNombre");
  15.            this->salario = 0.0f;
  16.        }
  17.        void setNombre(std::string nombre)
  18.        {
  19.            this->nombre.assign(nombre);
  20.        }
  21.        std::string getNombre()
  22.        {
  23.            return nombre;
  24.        }
  25.        void setSalario(float salario)
  26.        {
  27.            this->salario = salario;
  28.        }
  29.        float getSalario()
  30.        {
  31.            return salario;
  32.        }
  33. };
  34.  
  35. class Trabajo
  36. {
  37.    private:
  38.        std::vector<Persona>lista;
  39.  
  40.    public:
  41.        Trabajo()
  42.        {
  43.            this->lista.clear();
  44.        }
  45.        ~Trabajo()
  46.        {
  47.            this->lista.clear();
  48.        }
  49.        void AniadirPersonal()
  50.        {
  51.            Persona tmpPersona;
  52.            tmpPersona.setNombre("Cosme");
  53.            tmpPersona.setSalario(1000.0f);
  54.            this->lista.push_back(tmpPersona);
  55.  
  56.            tmpPersona.setNombre("Fulanito");
  57.            tmpPersona.setSalario(2000.0f);
  58.            this->lista.push_back(tmpPersona);
  59.        }
  60.        void MostrarPersonal()
  61.        {
  62.            for(Persona persona: this->lista)
  63.            {
  64.                std::cout << persona.getNombre() << " - $" << persona.getSalario() << std::endl;
  65.            }
  66.        }
  67. };
  68.  
  69. int main()
  70. {
  71.    Trabajo laburo;
  72.    laburo.AniadirPersonal();
  73.    laburo.MostrarPersonal();
  74.    return 0;
  75. }


B#


En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines