Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Predložak klase

[es] :: C++ programiranje :: C++ za početnike :: Predložak klase

[ Pregleda: 765 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 684
161.53.55.*

ICQ: 337738018


Profil

icon Predložak klase01.08.2006. u 12:06

Može li mi itko na smislenom primjeru objasniti gdje se koristi predložak klase? Općenito, koristim predloške funkcija i znam čemu to, ali za predložak klase ne znam gdje to iskoristiti.
01.08.2006. u 12:06 

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 481
*.lstm.uni-erlangen.de.



Profil

icon Re: Predložak klase01.08.2006. u 12:52
Jedan primer koji je meni zatrebao, je tip matrice (u matematičkom smislu, znači sabiranje, množenje, itd.) sa proizvoljnim tipom elemenata — celi brojevi, racionalni (opet posebna klasa), u pokretnom zarezu sa različitom tačnošću...
01.08.2006. u 12:52 

itf
Zagreb

Član broj: 59794
Poruke: 684
161.53.55.*

ICQ: 337738018


Profil

icon Re: Predložak klase01.08.2006. u 12:55
Opet mi se to čini da se može rješiti i predloškom funkcije...

Može li itko napisati ikakav primjer (programski kod) i na tome prikazati čemu to služi? Hvala
01.08.2006. u 12:55 

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 481
*.lstm.uni-erlangen.de.



Profil

icon Re: Predložak klase01.08.2006. u 13:03
Kako predloškom funkcije? Hoću da mogu da napišem nešto ovako:

Code:

Matrix<Rational> A(5);
Matrix<Rational> B(5);
...
Matrix<Rational> C = A * B;

01.08.2006. u 13:03 

itf
Zagreb

Član broj: 59794
Poruke: 684
161.53.55.*

ICQ: 337738018


Profil

icon Re: Predložak klase01.08.2006. u 13:25
Ok, kužim.
01.08.2006. u 13:25 

NrmMyth
Split, Kaštela

Član broj: 63456
Poruke: 839
*.cmu.carnet.hr.



Profil

icon Re: Predložak klase01.08.2006. u 15:40
Jesi ikada vidio stl::containers
01.08.2006. u 15:40 

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 336
*.fibertel.com.ar.



Profil

icon Re: Predložak klase01.08.2006. u 16:13
Nabavi knjigu "c++ primer" od Stanley B. Lippman-a . Tu ti je sve do u sitna crveca objasnjeno.


Tko leti vrijedi
01.08.2006. u 16:13 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2768
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Predložak klase01.08.2006. u 16:31
Evo jedan primer, kada ja koristim "predložak klase", ako sam dobro shvatio
šta je predložak klase:

Na primer, jedna od cestih situacija u programiranju je:

Code:

ObjekatTipa1->Enabled = false;
ObjekatTipa2->Enabled = false;
ObjekatTipa3->Enabled = false;

UradiNesto();

ObjekatTipa1->Enabled = true;
ObjekatTipa2->Enabled = true;
ObjekatTipa3->Enabled = true;


E sad, ovde je problem sto ako nesto pukne u UradiNesto(), ni jedan Enabled = true
nece biti izvrsen. try/finally nije deo C++ jezika a u BCB-u i nije pouzdan. Poseban
slucaj je ako imas "return" negde ranije pa moras da vodis racuna da prethodno i
tu Enable-ujes objekte.

Tada se poseze za takozvanim RAII mehanizmom (kao kod std::auto_ptr) koji garantuje
da ce nakon izlaska iz scope-a biti izvrsen destruktor objekta.

Da ne bih pisao posebnu RAII klasu za svaki tip podataka, evo jednog resenja i to
za VCL, jer ga koristis:


--- H ---
Code:

template<typename TRAIIDisablerEnabler>class TRAII_DisableEnable
{
   TRAIIDisablerEnabler * AObjectToControl;

   public:
   TRAII_DisableEnable( TRAIIDisablerEnabler * ObjectToControl )
   {
      AObjectToControl = ObjectToControl;

      if( AObjectToControl )
      {
         AObjectToControl->Enabled = false;
      }
   }

   virtual ~TRAII_DisableEnable()
   {
     if( AObjectToControl )
       AObjectToControl->Enabled = true;
   }
};


--- CPP ---
Code:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TRAII_DisableEnable<TButton> E1( Button1 );
    TRAII_DisableEnable<TCheckBox> E2( CheckBox1 );

   // UradiNesto(); 
   Sleep( 3000 );

    // destruktor ce sve vratiti na mesto Enabled = true;
}


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
01.08.2006. u 16:31 

itf
Zagreb

Član broj: 59794
Poruke: 684
161.53.55.*

ICQ: 337738018


Profil

icon Re: Predložak klase02.08.2006. u 07:56
Da... fora je u destruktoru. Hvala
02.08.2006. u 07:56 

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 336
*.fibertel.com.ar.



Profil

icon Re: Predložak klase02.08.2006. u 23:51
ako je predlozak - template sta je onda ulozak ?

Da cujem predloge :)


Tko leti vrijedi
02.08.2006. u 23:51 

[es] :: C++ programiranje :: C++ za početnike :: Predložak klase

[ Pregleda: 765 | Odgovora: 9 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.