Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 4.979 pregleda

Najnovija ↓

Hitno! - Definisanje tacno jednog objekta klase 28.11.2003. u 00:25 · pre 279 meseci #1
Kako da deklarisem klasu tako da se moze definisati tacno jedan objekat te klase?! Znam da treba uvesti neki brojac, ali mi treba tacno kako da to izvedem i to do ujutro do 11.

Re: Hitno! - Definisanje tacno jednog objekta klase 28.11.2003. u 00:31 · pre 279 meseci #3
Citat:
Robinsonk@:
Kako da deklarisem klasu tako da se moze definisati tacno jedan objekat te klase?! Znam da treba uvesti neki brojac, ali mi treba tacno kako da to izvedem i to do ujutro do 11.

Ne treba uvesti nikakav brojač. U pitanju je takozvani singleton design pattern.

Ideja je da se napravi klasa sa privatnim konstruktorom i u njoj tzv. Factory metoda koja deklariše jedan statički primerak te klase. Nema brojača, nema ničega. Potraži na guglu gore navedene ključne reči, čisto da ne ispadne da prepisuješ, već da ipak stoji i uložen trud. Vikipedija na primer daje spisak design patterna pa možeš potražiti i tamo.

f
Re: Hitno! - Definisanje tacno jednog objekta klase 28.11.2003. u 09:37 · pre 279 meseci #6
Evo kratkih makroa za definisanje singletona. Ovo nije najbolje resenje, ali moze da posluzi...

#define DECLARE_SINGLETON(n) static n& GetInstance(); private: n(); virtual ~n(); public:

#define IMPLEMENT_SINGLETON(n) n& n::GetInstance() { static n instance; return instance; };

Stavi jedan u .h fajl, implementaciju u .cpp i to ti je to :)
Re: Hitno! - Definisanje tacno jednog objekta klase 28.11.2003. u 10:52 · pre 279 meseci #8
Pojasni malo "n objekata"...
Mozes da stavis nesto kao "static int m_nObjectCount" u klasu da pratis broj instanci, ali tvoj prvi zhtev i ovaj nemaju mnogo dodirnih tacaka.
Singleton ti je kao pomocno sredstvo koje ti omogucava da ne brines mnogo oko toga ko je i kada instancirao klasu. Uvek ces dobiti istu instancu kad pokusas da kreiras novu. Ali, ako kreiras "n" objekata, sta ocekujes da dobijes kad instanciras n+1 objekat? Pointer na vec postojeci (koji?) objekat ili NULL? Zavisi sta hoces da postignes, verovatno ti je najbolje da za tu klasu obezbedis i neku vrstu container klase koja bi cuvala pointere na instancirane objekte...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme