16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

struct Licznik<br />

{<br />

private:<br />

char znak;<br />

int ile;<br />

public:<br />

Licznik(void); //Konstruktor nie pobiera argumentu<br />

void PlusJeden(void);<br />

};<br />

Teraz powinniśmy zdefiniować konstruktor. Zrobimy to tak, jak<br />

wcześniej definiowaliśmy funkcję Inicjuj().<br />

Licznik::Licznik(void) //Konstruktor nie pobiera argumentu<br />

{<br />

ile = 0;<br />

}<br />

Jeśli formalny typ struktur (klasa) posiada kostruktor, to po<br />

rozpoczęciu programu i napotkaniu deklaracji struktur danego<br />

typu konstruktor zostanie wywołany automatycznie. Dzięki temu<br />

nie musimy "ręcznie" inicjować struktur na początku programu.<br />

Jednakże nasz przykładowy konstruktor nie załatwia wszystkich<br />

problemów - nie ustawia w strukturze zmiennej (pola) int znak -<br />

określającego, który znak powinien być zliczany w liczniku. W<br />

tak zainicjowanej strukturze zmienna ile jest zerowana, ale<br />

zawartość pola znak pozostaje przypadkowa. Niby wszystko w<br />

porządku, ale wygląda to niesolidnie. Czy nie możnaby przekazać<br />

parametru przy pomocy konstruktora? Można! Konstruktor<br />

"bezparametrowy"<br />

Licznik::Licznik(void)<br />

taki, jak powyżej to tylko szczególny przypadek - tzw.<br />

konstruktor domyślny (ang. default constructor).<br />

PRZEKAZYWANIE ARGUMENTÓW DO KOSTRUKTORA.<br />

Czasem chcemy zainicjować nową strukturę już z pewnymi<br />

ustawionymi parametrami. Te początkowe parametry struktury<br />

możemy przekazać jako argumenty konstruktora.<br />

struct Licznik<br />

{<br />

private:<br />

char znak;<br />

int ile;<br />

public:<br />

Licznik(char); //Konstruktor z argumentem typu char<br />

void PlusJeden(void);<br />

};<br />

Licznik::Licznik(char x) //Konstruktor z jednym argumentem<br />

- 268-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!