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


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ OOP vectores de clases - como crear un vector de una clase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: C++ OOP vectores de clases - como crear un vector de una clase  (Leído 8,390 veces)
GisiNA

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: C++ OOP vectores de clases - como crear un vector de una clase
« Respuesta #20 en: 21 Febrero 2017, 09:54 »

Me estás diciendo que teiens problemas pero no me estás enseñando el código con esos problemas.

Si tienes un problema, enseña el código que da ese problema, y los errores que genera.


Efectivamente he colocado el código con problemas. Y el error correspondiente que arroja también.
Ambos en el mensaje previo al anterior.
Por lo demás, di respuesta a tu comentario que dice que el vector se encuentra comentado y que sobre esa base es que el compilador no puede hallar al objeto database. Mi correspondiente respuesta fue que he ubicado el vector bajo public (comparar las líneas 41 y 38).


« Última modificación: 21 Febrero 2017, 09:59 por GisiNA » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: C++ OOP vectores de clases - como crear un vector de una clase
« Respuesta #21 en: 21 Febrero 2017, 15:37 »

Esque en ese código, el error tampoco es coherente al código:

Código
  1. void patInsert(vector<Patient>& manyPatientFull)
  2. {
  3.     manyPatientFull.push_back(database);
  4.     cout << endl;
  5. }

Código:
In member function ‘void PatientDatabase::patInsert(std::vector<Patient>&)’:
prog.cpp:48:10: error: ‘manyPatient’ was not declared in this scope
          manyPatient.push_back(database);

En uno pone manyPatientFull y en otro manyPatient.

Necesito datos reales para ver tu problema.


En línea

GisiNA

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: C++ OOP vectores de clases - como crear un vector de una clase
« Respuesta #22 en: 21 Febrero 2017, 17:12 »

Hola! Mira, resulta que he hallado, tras mucho experimentar, la solución buscada. La esencia del problema, al menos de acuerdo a mi solución, era colocar al vector dentro de una función. De ese modo es posible trabajar con él y al mismo tiempo, heredar de la clase padre.

Acá dejo el código. De todos modos, no lo hubiera logrado sin tus correcciones!  ;-)
Muchas gracias!

Código
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. //Klasse einrichten
  8. class Patient
  9. {
  10. private:
  11. string fname;
  12. string sname;
  13.  
  14. void privateFunción()
  15. {
  16. //string _sname, _fname; // Falls man durch Tastatureingabe Vektor füllen
  17. // will.
  18. vector<Patient>vielePatient;
  19. vectorfuellen(vielePatient);
  20. printVector(vielePatient);
  21. }
  22.  
  23. public:
  24. ~Patient(){}
  25.  
  26. Patient(){ }
  27.  
  28. // Zum aufrufen der privaten Función
  29. void publicFunción()
  30. { privateFunción(); };
  31.  
  32. void setFistname(string _fname)
  33. { fname = _fname; }
  34.  
  35. void setSecondname(string _sname)
  36. { sname = _sname; }
  37.  
  38. void setName(string _fname, string _sname)
  39. { fname = _fname;
  40. sname = _sname;}
  41.  
  42. string getSecondname() const { return sname; }
  43. string getFistname() const { return fname; }
  44.  
  45.  
  46.  
  47. // Función para manipular al vector
  48. // Función 1: llenar el vector
  49. void vectorfuellen(vector<Patient>& f_vielePatient)
  50. {
  51. Patient patient01;
  52. Patient patient02;
  53. Patient patient03;
  54.  
  55. patient01.setName("me", "mo");
  56. patient02.setName("ma", "mu");
  57. patient03.setName("hu", "ju");
  58.  
  59. f_vielePatient.push_back(patient01);
  60. f_vielePatient.push_back(patient02);
  61. f_vielePatient.push_back(patient03);
  62.  
  63. // Falls man durch Tastatureingabe den Vektor füllen will.
  64. // (Muss vieleicht etwas umgestellt werden.)
  65. /*cout<<"Apellido: ";
  66. cin >> _fname;
  67. //patient01.setFistname(_fname);
  68.  
  69. cout<<"Nombre: ";
  70. cin >> _sname;*/
  71. //patient01.setSecondname(_sname);
  72.  
  73. //patient01.setName(_fname, _sname);
  74. }
  75.  
  76. // Función 2: mostrar el vector
  77. void printVector(const vector<Patient>& p_vielePatient){
  78. for(int i=0; i<=p_vielePatient.size(); i++)
  79. { cout << p_vielePatient[i].getFistname() << " " << p_vielePatient[i].getSecondname() << endl; }
  80. }
  81.  
  82.  
  83. };
  84.  
  85. int main()
  86. {
  87.  
  88. Patient patient01;
  89. patient01.publicFunción();
  90.  
  91. return 0;
  92. }  
  93.  
« Última modificación: 21 Febrero 2017, 19:52 por GisiNA » En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

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