Code:
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
class Clan {
private:
static int BrojClanova;
int Id_broj;
wstring tel, ime, adresa;
public:
Clan() : tel( L"" ), ime( L"" ), adresa( L"" ) {
};
Clan(LPWSTR i, LPWSTR a, LPWSTR t) {
tel = t;
ime = i;
adresa = a;
Id_broj = ++BrojClanova; //Ako hoces da ti Id_broj ide od 0 napisi BrojClanova++
};
int DajId_broj() { return Id_broj; }
wstring DajTel() { return tel; }
wstring DajIme() { return ime; }
wstring DajAdresu() { return adresa; }
void PostaviTel(wstring t) { tel = t; }
void PostaviAdr(wstring a) { adresa = a; }
~Clan() {
}
};
Ja bih ovako definisao ovu klasu. U tvom slucaju Id_broj si definisao ovako
Code:
static float Id_broj;
sto znaci da za sve objekte tipa Clan postoji samo jedan Id_broj... kad ga povecas u jednom objektu on se poveca u svim tako da bi ti svaki objekat funkcijom DajId_broj vracao istu vrednost. Ako si to i hteo onda sam ja pogresno shvatio svrhu te promenljive :)
Sve ostalo je u sustini isto jedino sto sam koristio promenljive tipa wstring koje umesto tebe barataju kreiranjem i unistavanjem stringova i jos su i unicode tako da podrzavaju i nasa slova.
Negde u programu bi trebao da definises promenljivu
Code:
int Clan::BrojClanova = 0;
i posle kreiranja svakog objekta klase Clan ta promenljiva ce se uvecati za jedan. Probaj ovo cini mi se da bi trebalo da radi.
Sto se tice ove druge klase... mislim da nema logike da nasledjuje klasu Clan. Klasa Film treba samo da sadrzi jedan objekat koji ce da pokazuje da li je film izdat ili ne. Ako je objekat = NULL film nije izdat, a ako != NULL onda je izdat, a objekat sadrzi podatke o osobi koja je uzela film.