_szergej_ Creative Commons License 2019.07.28 0 0 112

A :: a hatokor feloldo operator, pl. ha van egy i globalis valtozod, es mas nevter(ek)ben is letezik ugyanezzel a nevvel egy valtozo, ezzel tudsz ra hivatkozni:

 

#include <iostream>

int i = 5;

void cout() { }

 

class A

{

   int i = 3;

   void bla() { std::cout << ::i << std::endl; }

};

 

A bla() meghivasaval 5 lesz a kimenet, nem 3. Ugyanigy, az std::cout-tal is az std nevterben levo fuggvenyt hasznalod (ha lehagyod az std::-t, le se fordul)

Hivatkozhatsz vele egy osztaly statikus fuggvenyeire, valtozoira, szulo valamelyik fuggvenyere, ha felulirtad volna, es az eredeti implementaciot (is) meg akarod hivni, stb.

Gondolom a kerdesed a kododban levo Graphics::TBitmap-re iranyult. A fentieknek megfeleloen itt a Graphics nevterben (namespace) levo TBitmap tipust peldanyositod. (ld. meg using namespace..)

 

. vs ->

Sarkitva (es azokra a peldakra ertve, amelyekkel elso korben talalkozni fogsz) a . kb. ugyanaz, mint a -> (a->b helyett irhatod azt is, hogy (*a).b). Ha mutaton keresztul hivatkozol egy tagfuggvenyre/valtozora akkor ->-t, amugy .-t kell hasznalni. A fordito erre ugyis figyelmeztet, ha elteveszted veletlenul. (Mondjuk ez igy nem teljesen korrekt, mivel a -> operator feluldefinialhato, ezert mast is jelenthet, de ez mar messzebbre vezet, ld. pl shared_ptr es tsai...)

 

ilyen multimédiás adatot miként

A kododban van egy Graphics::TBitmap tipusu valtozo. Ez pont arra jo, igaz nagy valoszinuseggel a hordozhatosagnak lottek igy.

Előzmény: egy hazafi (111)