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.