hay entre UD. quién pueda ayudarme a resolver el siguiente problema?
Ha buscado en innumerables foros, pero, al parecer resulta ser un tema poco tratado.
El siguiente programa consta de dos clases. Una clase base Person que aloja fname y sname de forma protected. La segunda clase Patient quiere tomar esos valores y alojarlos en un vector (y agrega además el valor edad. Para simplificar el tema, he dejado fuera age.)
La función main() crea un objeto Patient.
Sin embargo, no he logrado capt;ar e imprimir en pantalla esa creación.
Alguien puede ayudarme a corregir el código de modo tal que pueda imprimir en pantalla los resultados?
Acá el código:
Código:
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <stdio.h>
#include <vector>
using namespace std;
class Person
{
protected:
string fname;
string sname;
public:
// Person(){fname = ' '; sname = ' ';}
~Person(){}
Patient(string names, string namef)
{ sname = names;
fname = namef; }
void setNachname(string names)
{ sname = names; }
void setVorname(string namef)
{ fname = namef; }
string getVorname() const { return fname; }
string getNachname() const { return sname; }
};
class Patient : protected Person
{
protected:
vector<Person> pDB;
//int age;
public:
Patient(){}
~Patient(){}
vector<Person> GetCopyOfVector()
{ return pDB; }
// Agrega el/los objetos creados al vector de la clase Person.
// Toma el vector por referencia para evitar duplicados.
void patInsert(vector<Person>& pDB)
{
pDB.push_back(pDB);
cout << endl;
}
// Imprime el resultado. Capta al vector de forma const
// para evitar modificaciones del vector.
void printVectorPatient(const vector<Person>& pDB)
{
int i;
int size = pDB.size();
for(i=0; i<size; i++)
{
cout << "Name Patient: " << pDB[i] << endl;
}
}
};
int main()
{
// Crea un nuevo objeto.
Patient PatDB("ma", "mo");
PatDB.patInsert(PatDB);
PatDB.printVectorPatient(PatDB);
return 0;
}
Muy agradecida

Gisi