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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

{<br />

...<br />

}<br />

main()<br />

{<br />

Licznik licznik('A'); //Deklaracja struktury typu Licznik<br />

// oznacza to automatyczne wywołanie konstruktora z argumentem<br />

....<br />

Poniewż nowy konstruktor pobiera od programu argument typu<br />

znakowego char, więc i definicję konstruktora należy zmienić:<br />

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

{<br />

ile = 0;<br />

znak = x;<br />

}<br />

Jeśli parametrów jest więcej niż jeden, możemy je przekazać do<br />

konstruktora, a konstruktor wykorzysta je do zainicjowania<br />

struktury w następujący sposób:<br />

struct Sasiedzi //sąsiedzi<br />

{<br />

private:<br />

char Tab_imion[4];<br />

...<br />

public:<br />

Sasiedzi(char *s1, char *s2, char *s3, char s4);<br />

...<br />

};<br />

main()<br />

{<br />

Sasiedzi chopy("Helmut", "Ulrich", "Adolf", "Walter");<br />

....<br />

Przekazanie konstruktorowi argumentów i w efekcie automatyczne<br />

ustawiamie przez konstruktor paramatrów struktury już w momencie<br />

zadeklarowania struktury w programie rozwiązuje wiele problemów.<br />

W <strong>C++</strong> istnieje jednakże pewne dość istotne ograniczenie - nie<br />

możemy zadeklarować tablicy złożonej z obiektów posiadających<br />

konstruktory, chyba że wszystkie konstruktory są bezparametrowe<br />

(typu default constructors).<br />

Udoskonalmy teraz nasz program zliczający wystąpienia w tekście<br />

litery a posługując się konstruktorem struktury.<br />

[P094.CPP] /* Wersja ze strukturą */<br />

# include <br />

# include <br />

- 269-

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

Saved successfully!

Ooh no, something went wrong!