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.

Data::Data(void)<br />

//Poczatkowa data - Konstruktor<br />

oznacza, że funkcja Data(void) nie pobiera od programu żadnych<br />

parametrów i tworzy (w pamięci komputera) strukturę typu Data.<br />

Takie dziwne funkcje konstruujące (inicjujące) strukturę (o czym<br />

dokładniej w dalszej części książki), nazywane w <strong>C++</strong><br />

konstruktorami nie zwracają do programu żadnej wartości. Zwróć<br />

uwagę, że konstruktory to specjalne funkcje, które:<br />

-- mają nazwę identyczną z nazwą typu własnej struktury,<br />

-- nie posiadają wyspecyfikowanego typu wartości zwracanej do<br />

programu,<br />

-- służą do zainicjowania w pamięci pól struktury,<br />

-- nie są wywoływane w programie w sposób jawny, lecz niejawnie,<br />

automatycznie.<br />

Podstawowym praktycznym efektem dodania do struktur funkcji<br />

stała się możliwość skutecznej ochrony danych zawartych na<br />

polach struktury przed dostępem funkcji z zewnątrz struktury.<br />

Przed dodaniem do struktury jej własnych wewnętrznych funkcji -<br />

wszystkie funkcje pochodziły z zewnątrz, więc "hermetyzacja"<br />

danych wewnątrz była niewykonalna. Zasady dostępu określa się w<br />

<strong>C++</strong> przy pomocy słów:<br />

public - publiczny, dostępny,<br />

protected - chroniony, dostępny z ograniczeniami,<br />

private - niedostępny spoza struktury.<br />

Przykładowy program poniżej demonstruje tzw. "hermetyzację"<br />

struktury (ang. encapsulation). W przykładzie poniżej:<br />

* definiujemy strukturę;<br />

* definiujemy funkcje;<br />

* przekazujemy i pobieramy dane do/od struktury typu Zwierzak.<br />

Zmienna int schowek powinna sugerować ukrytą przez strukturę i<br />

niedostępną dla nieuprawnionych funkcji część danych struktury a<br />

nie cechy anatomiczne zwierzaka.<br />

[STRUCT.CPP]<br />

# include "iostream.h"<br />

//UWAGA: schowek ma status private, jest niedostepny<br />

struct Zwierzak<br />

{<br />

private:<br />

int schowek; //DANE PRYWATNE - niedostepne<br />

public:<br />

void SCHOWAJ(int Xwe); //Funkcje dostepne zzewnatrz<br />

- 252-

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

Saved successfully!

Ooh no, something went wrong!