39039

39039



Rozdział 23

Powszechne praktyki

Rozdział ten ma za zadanie |Ktkazm' powszechnie stosowane metody programowania w C. Nie będziemy tu uczyć, jak należy stawiać nawiasy klamrowe ani który sposób nazewnictwa zmiennych jest najlepszy prowadzone są o to spoty', z których niewiele wynika. Zaprezentowane tu rozwiązania mają konkretny wpływ na jakość tworzonych programów.

Konstruktory i destruktory

W większości obiektowych języków programowania obiekty nie mogą być tworzone bezpośrednio obiekty otrzymuje się wywołując specjalną mcto<lę danej klasy, zwaną konstruktorem. Konstruktory są ważne, ponieważ |x>zwjilają zapewnić obiektowi odpowiedni stan początkowy. Destruktory, wywoływane na końcu czasu życia obiektu, są istotne, gdy obiekt ma wyłączny dostęp do pewnych zasobów i konieczne jest upewnienie się. czy te zasoby zostaną zwolnione.

Ponieważ C nie jest językiem obiektowym, nie ma wbudowanego wsparcia dla konstruktorów i destruktorów. Często programiści bezpośrednio modyfikują tworzone obiekty i Struktury. Jednakże prowadzi to do potencjalnych błędów, ponieważ operacje na obiekcie mogą sję nie powieść lub zachować się nieprzewidywalnie, jeśli obiekt nie został prawidłowo zainicjalizowany. Lepszym podejściem jest stworzenie funkcji, która tworzy instancję obiektu, ewentualnie przyjuuijąc pewne parametry:

struct string { size.t size; char *data;

>;

struct string *create_string(const char *initial) { assert (initial !* NULL);

struct string *nev_string = nalloc(sizeof(•nev_string)); if (new.string !■ NULL) {

new_string->size ■ strlen(initial); nev_string->data - strdup(initial);

>

return nev_string;

Podobnie, bezpośrednie usuwanie obiektów może nie do końca się udać. prowadząc do wycieku zasobów. Lepiej jest użyć destruktora:

165



Wyszukiwarka

Podobne podstrony:
metro 31#20 3    Układ sterowania bramek X i Y Układ ten ma za zadanie sterować bramk
76897 M0 160 Andrzej Zero - Aiaihcad 7.06. Edycja dokumentu Niniejszy rozdziała ma za zadanie przed
Rozdział I. Zadania i charakter pracy magisterskiej 11 badawczego, nie zawsze ma za zadanie rozwiązy
36128 skanuj0409 (2) Rozdział 15. ♦ Generowanie statystyk 425 Funkcja printBrowsersStats ma za zadan
Rozdział 1Wprowadzenie do Dialogu Człowieka z Komputerem Rozdział ten ma na celu przedstawienie i
3. Przestrzeń leśna Wcześniejszy rozdział opracowania miał za zadanie zarysować specyfikę
OMiUP t2 Gorski5 rozdzielacz pary 4, mający za zadanie równomierne jej rozprowadzenie na możliwie j
foto0 System ma za zadanie odpowiedzieć na pytania: •    czy istnieje uzasadniona
UKŁAD NERWOWY Układ nerwowy u człowieka ma za zadanie koordynację poszczególnych czynności życiowych
43787 Strona?,95 (skan by buby77) UKŁAD TRAWIENNY Układ trawienny ma za zadanie dostarczyć organi

więcej podobnych podstron