Este es el ejercicio final que me gustaría poder resolver y así entender la lógica de los tres conceptos que señalas:
Código
#include <iostream> #include <iomanip> #include <cstdlib> #include <stdio.h> #include <vector> using namespace std; class Patient { private: string fname; string sname; public: ~Patient(){} Patient(){ } void setFistname(string _fname) { fname = _fname; } void setSecondname(string _sname) { sname = _sname; } string getSecondname() const { return sname; } string getFistname() const { return fname; } }; class PatientDatenbank : protected Patient { protected: //vector tipo clase Patient. vector<Patient> vielePatient; public: PatientDatenbank(){} //Copia del vector clase Patient vector<Patient> GetCopyOfVector() { return vielePatient; } // Escribir en la copia del vector void patInsert(vector<Patient>& vielePatient) { vielePatient.push_back(datenbank); cout << endl; } // Imprimir el vector en pantalla void printVectorPatientDatenbank(const vector<Patient>& vielePatient) { int i; int size = vielePatient.size(); for(i=0; i<size; i++) { cout << vielePatient[i].getFistname() << " " << vielePatient[i].getSecondname() << endl; } } }; int main() { string _sname, _fname; // Patient patient01; PatientDatenbank datenbank; cout<<"Apellido: "; cin >> _fname; // patient01.setFistname(_fname); datenbank.setFistname(_fname); cout<<"Nombre: "; cin >> _sname; // patient01.setFistname(_sname); datenbank.setSecondname(_sname); return 0; }
Mi problema radica seguramente en la forma que estoy tratando de acceder al vector. De una parte, pienso que la copia que crea de él está mal. La otra parte que creo errada es la forma en que intento traspasar desde main la información de mi objeto a la clase "PatientDatenbank" que es la que tiene el vector.
El error que recibo es: datenbank no ha sido declarado.
Saludo,
Gisi