Hola eferion, al final no me da más error con los getRow, lamentablemente tuve que usar los punteros para eso:
Código C++:
Ver original#include <list>
#include "Persona.h"
#ifndef MANPERSONAS_H
#define MANPERSONAS_H
using namespace std;
std::list<Persona*>lista;
static int maxIdP = 0;
int getMaxIdP(){
return ++maxIdP;
}
bool check(Persona* p){
for(Persona* per : lista){
if(per->id == p->id){
return true;
}
}
return false;
}
Persona* getRow(std::string xnom){
for(Persona* p : lista){
if(p->nom == xnom){
return p;
}
}
return NULL;
}
Persona* getRow(int xid){
for(Persona* p : lista){
if(p->id == xid){
return p;
}
}
return NULL;
}
bool create(Persona* p){
if(check(p)){
return false;
}
else{
lista.push_back(p);
return true;
}
}
bool update(Persona* p){
}
void deleted(Persona* p){
}
std::list<Persona*> read(){
return lista;
}
#endif /* MANPERSONAS_H */
Pero tengo ahora 2 problemas y es que el checkInt y el addInt no me andan ya q lo que quiero es que me validen de si lo que ingreso es númerico o no:
Código C++:
Ver original#include <ctime>
#ifndef UTIL_H
#define UTIL_H
using namespace std;
bool checkInt(int s){
}
bool checkStr(string s){
for(int i=0; i < s.size(); i++){
if((s[i] >= 65 and s[i]<= 90) or (s[i] >= 90 and s[i]<= 122)){
return true;
}
}
return false;
}
void pause(int dur) {
int temp
= time(NULL
) + dur
; while(temp
> time(NULL
)); }
string addString(string type){
int intento = 1;
string nom = "";
while(!checkStr(nom)){
cout << "\n intento nro "<< intento << " Ingrese " << type <<": ";
cin >> nom;
intento++;
}
return nom;
}
int addInt(string type){
int intento = 1;
int nro =0;
while(!checkInt(nro)){
cout << "\n intento nro "<< intento << " Ingrese " << type <<": ";
cin >> nro;
intento++;
}
return nro;
}
#endif /* UTIL_H */
Por otro lado cuando quiero agregar un nuevo elemento a mi lista al crear me da el error de: Segmentation Failed.
¿sugerencias?
Espero sus respuestas y saludos