Parametr pthread_create - dotaz na C++ckare

Stanislav Meduna stano na trillian.eunet.sk
Čtvrtek Únor 4 20:09:40 CET 1999


On 4 Feb 1999 16:56:50 +0100, Jacek Kopecky wrote:

: Parametr this je totiž nutný a (možná kromě u statických
: metod) se ho nedá zbavit. Ale statické metody jsou zřídka vhodné.

Prave naopak, staticke metody su vhodne prave na toto, aby
sa dala wrapper funkcia spravit vovnutri triedy a nebolo
treba robit globalne funkcie.

Takze napr.:

class MujThreadT
{
 public:
  static void * muj_thread(void *xx);

  void * moja_skutocna_funkcia();
};

void * MujThreadT::muj_thread(void *xx)
{
  return ((MujThreadT *) xx)->moja_skutocna_funkcia();
}


  pthread_create(p, a, &MujThreadT::muj_thread, &Muj);


T.j. thread vytvorim zo statickej funkcie muj_thread
a ako argument odovzdam adresu objektu, nad ktorym
ma fungovat. Staticka funkcia si z neho naspat urobi
pointer na objekt (co je vlastne ten spominany this)
a zavola uz normalnu metodu na tomto objekte.

Pozor potom na to, kedy a ako sa takyto objekt destruuje!

Tato cesta je vhodna aj v inych pripadoch, ked je
potrebne dostat objekt do nejakeho systemu, ktory
objekty neprilis podporuje, ale da k dispozicii
jeden parameter - typicky priklad su X Window.

Zdravi
-- 
				Stano



Další informace o konferenci Linux