Hola tengo este código:
Código C++:
Ver original#ifndef PERSONA_H
#define PERSONA_H
class Persona
{
public:
Persona();
virtual ~Persona();
void setEdad(int);
void setNombre(char*);
int getEdad();
char* getNombre();
protected:
private:
int edad;
char *nombre;
};
#endif // PERSONA_H
Código C++:
Ver original#include <iostream>
#include <cstring>
#include "persona.h"
Persona::Persona()
{
//ctor
}
Persona::~Persona()
{
//dtor
}
void Persona::setEdad(int e)
{
edad = e;
}
void Persona::setNombre(char *nom)
{
nombre
= new
char[strlen(nom
)];}
int Persona::getEdad()
{
return edad;
}
char* Persona::getNombre()
{
return nombre;
}
aqui la clase main
Código C++:
Ver original#include <iostream>
#include <vector>
#include "persona.h"
using namespace std;
int main()
{
vector <Persona*> personas;
char r;
do
{
char *n;
int e;
Persona *p;
p = new Persona;
cout << "\nNombre: ";
cin >> n;
cout << "\nEdad: ";
cin >> e;
p->setEdad(e);
p->setNombre(n);
personas.push_back(p);
cout << "\nContinuar? : ";
cin >> r;
}while(r=='s');
cout << "\n\nMostrando.." << endl;
for(int i=0; i<personas.size(); i++)
{
cout << "\nNombre: " << personas[i]->getNombre();
}
return 0;
}
bien el programa debe preguntar nombre y edad y crear una persona y almacenarlo en el vector personas hasta que el usuario diga que no quiere continuar.. y luego mostrar los nombres.. el programa lo hace muestra los nombres pero termina creo q abruptamente pq me sale un dialogo de error en windows que dice cerrar programa, buscar solucion en linea, depurar el programa.. pq será?? creo que es pq no libero la memoria que utilizo de ser esto cierto como lo hago?? gracias!