Zadanie 2

 

klasa - jest to grupa danych i funkcji, które na tych danych operują. Tworząc klasę tworzymy nowy typ danych, którego składnikami są inne typy danych.

 

obiekt - jest fragmentem pamięci, któremu przyporządkowano pewien typ i sposób odwoływania się do niego przy użyciu języka programowania. Jest konkretnym przedstawicielem, pojedynczym egzemplarzem klasy obiektów, charakteryzujących się wspólnymi cechami strukturalnymi i funkcjonalnymi.

 

Definiowanie obiektów - obiekty można definiować poprzez:

  • deklarację zmiennej klasy  - nazwa_klasy nazwa_obiektu
  • stosując operator new do przydziału pamięci dla obiektu klasy - nazwa_ klasy *wskaźnik = new nazwa_klas


Składniki klasy:
Funkcje składowe (metody) mogą być zdefiniowane w deklaracji klasy, albo mogą być reprezentowane przez prototypy. 
Składowe będące obiektami deklarujemy tak jak pola innych typów. Klasa wykorzystuje implementację swoich obiektów składowych, lecz nie dziedziczy ich interfejsu. Do pliku zawierającego definicję klasy musimy dołączyć plik zawierający definicję klas obiektów składowych.

Hermetyzacja:
Polega na odseparowaniu w zebramej strukturze implementacji klasy od abstrakcji.

Konstruktor:
W programowaniu obiektowym to specjalna metoda danej klasy, wywoływana podczas tworzenia jej instancji. Zadaniem konstruktora jest zainicjowanie obiektu, a w niektórych językach programowania także utworzenie obiektu.

Wywołanie konstruktora powoduje wykonanie następujących zadań:

  • obliczenie rozmiaru obiektu
  • alokacja obiektu w pamięci
  • wyczyszczenie (zerowanie) obszaru pamięci zarezerwowanej dla obiektu (tylko w niektórych językach)
  • wpisanie do obiektu informacji łączącej go z odpowiadającą mu klasą (połączenie z metodami klasy)
  • wykonanie kodu klasy bazowej (w niektórych językach niewymagane)
  • wykonanie kodu wywołanego konstruktora

 

Przykład:

class Wektor {
  public:
  Wektor( double x , double y ) {
  this->x = x;
  this->y = y;
  }
  private:
  double x;
  double y;
 };
 
 int main () {
  Wektor mojWektor( 3 , 2 );
  return 0;
 }

Destruktor:
W obiektowych językach programowania specjalna metoda, wywoływana przez program przed usunięciem obiektu i niemal nigdy nie jest wywoływana wprost w kodzie używającym obiektu. Pod względem funkcjonalnym jest to przeciwieństwo konstruktora.

Przykład:
Dla klasy Uczen można zdefiniować destruktor:
~Uczen() {cout <
Destruktor wywołany podczas usuwania obiektu, wyświetli komunikat "Usuwanie obiektu!". W praktyce oczywiście nie należy definiować podobnych destruktorów.

Zagnieżdżona definicja klasy:
W C++ można umieścić deklarację klasy w innej klasie. Klasa zadeklarowana wewnątrz jest nazywana klasą zagnieżdżoną. Funkcje składowe klasy zewnętrznej mogą tworzyć obiekty klasy zagnieżdżonej i używać ich. Na zewnątrz klasa wewnętrzna jest widoczna jeśli jest umieszczona w sekcji public. 
Zagnieżdżenie klas nie powoduje utworzenia składowej w klasie zewnętrznej, lecz zdefiniowanie typu, z którego może lokalnie korzystać klasa zewnętrzna. 

 

bankomat2012.cpp (601 B)
czolg.cpp (434 B)
motocykl.cpp (1,1 kB)

 

iteracja.cpp (193 B)
pole prostokata.cpp (229 B)
rozgałezienie warunkowe.cpp (314 B)