[ sucur @ 18.11.2005. 13:02 ] @
Ovako, nesto sam se zezao sa klasama u C++ i naisao na jedan problem, dakle program ima rezervisanih 10 izvoda iz klase i svaka klasa ima svoje podatke. I napravio sam neku navigaciju za odabir ID-a osobe koju hocemo da dodamo ili da citamo informacije i problem je kada dodam prvu osobu sve je uredu, al' kada dodam drugu osobu na drugi ID, on mi promijeni i podatke prve osobe sa tim i kada pozovem m[0] i m[1] dobijem iste informacije iako nisu kao takve upisane. Bolje cete shvatiti o cemu se radi uz pomoc source-a. PS. Znam da ima viska koda, jer ponavljam samo sam se zezao i testirao. Code: #include <iostream> using namespace std; class Covjek { public: Covjek(); ~Covjek(); int getAge(){return itsAge;} void setAge(int age){itsAge = age;} char *getName(){return name;} char *getPrezime(){return sn;} char *getCity(){return city;} char *getSch(){return sch;} void setName(char *sName ){ name = sName;} void setInfo(int god, char *ime, char *prezime, char *grad, char *skola) {itsAge = god, name = ime, sn = prezime, city = grad, sch = skola;} void getInfo(Covjek c) {cout << "\nIme: " << c.getName(); cout << "\nPrezime: " << c.getPrezime(); cout << "\nGodine: " << c.getAge(); cout << "\nGrad: " << c.getCity(); cout << "\nSkola: " << c.getSch() << "\n"; } private: int itsAge; char *name; char *sn, *city, *sch; }; Covjek::Covjek() { }; Covjek::~Covjek() { }; int main() { int ID = 0; int msg = 0; char ime[20], prezime[20], grad[20], skola[20]; int godine; Covjek man, man1; Covjek m[10]; for(int i = 0; i <10; i++) m[i].setInfo(0,"NA","NA","NA","NA"); while(msg != 99) { switch(msg) { case 1: cout << "\nOdaberite ID osobe: "; cin >> ID; msg = 0; break; case 2: m[ID].getInfo(m[ID]); msg = 0; break; case 3: cin.ignore(1); cout << "\nUnesite ime: "; cin.getline(ime, 20); cout << "Unesite prezime: "; cin.getline(prezime, 20); cout << "Unesite godine: "; cin >> godine; cin.ignore(1); cout << "Unesite grad: "; cin.getline(grad, 20); cout << "Unesite skolu: "; cin.getline(skola, 20); m[ID].setInfo(godine, ime, prezime, grad, skola); msg = 0; break; default: cout << "\nTrenutni ID: " << ID; cout << "\nOdaberite oblast: "; cin >> msg; break; } } cout << m[0].getName(); cout << m[1].getName(); cout << "\n" << m[2].getName(); cout << "\n\n\n"; }; |