Plazma sayı 3, sayfa 79

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 79

Tabii ki pointer ile.

Bunları private alanda birer pointer ile tutsam, constructor'da oluşturup destructor'da silsem sorunum kalmayacak.

class Timer { public:

Timer() ;

~Timer() ;

Timer(Timer const &timer) ;

Timer &operator =(Timer const &timer) ;

void Start() ;

void Stop() ;

double GetTime() const ;

private:

bool counting_ ;

union LARGE_INTEGER ;

LARGE_INTEGER *frequency_ ;

LARGE_INTEGER *zero_ ;

(Not: Dinamik bellek kullanımına geçtiğimiz için varsayılan kopyalama işlemleri (element element kopyalama) isteğimizi karşılamayacak. Bu yüzden kendi kopyalama rutinlerimizi yazmamız gerekti.)

Timer sınıfını görüp Timer objeleri oluşturmak isteyen bir kaynak dosyasının artık windows.h’ı eklemesine gerek kalmadı. Çünkü gizli alandaki LARGE_INTEGER’ları kullanmayacak ve boylarını bilmesine gerek yok. Ve çünkü bütün pointerlar aynı boydadır! Tek yapmamız gereken bunun ne tür bir değişken olduğunu ön bildirim olarak derleyiciye vermek (struct).

Aslında daha rahat bir kullanım tüm private kısmı özel bir sınıf içine alıp tek bir pointer kullanmak.

class Timer { public:

Klavyeyle gezinmek için ← ve → tuşları.