C++, Programowanie obiektowe


Istnieje w języku C++ mechanizm friend, który pozwala na to aby funkcja zewnętrzna w stosunku do danej klasy miała dostęp do prywatnych zmiennych składowych tej klasy.

Wskaźnik this jest to niejawny wskaźnik do każdej funkcji składowej klasy. Wskaźnik ten ma typ klasy, której składową jest funkcja. Gdy funkcja składowa jest wywoływana, wskaźnik ten zostaje zainicjalizowany na adres egzemplarza klasy, dla której funkcja została wywołana.

Wskaźnik this umożliwia jawne odwołanie się do pól klasy.

Konstruktor służy inicjalizowaniu zmiennych składowych egzemplarza klasy, a destruktor niszczeniu tego egzemplarza. Jeżęli nie zadeklarujemy i nie zdefiniujemy destruktora lub konstruktora to egzemplarz dostaje domyślne odpowiedniki tych funkcji.

Hermetyzacja (z ang. encapsulation, kapsułkowanie lub inaczej ukrywanie informacji) - jedno z założeń paradygmatu programowania obiektowego. Polega ono na ukrywaniu pewnych danych składowych lub metod obiektów danej klasy tak, aby były one (i ich modyfikacja) dostępne tylko metodom wewnętrznym danej klasy lub funkcjom z nią zaprzyjaźnionym.

Z pełną hermetyzacją mamy do czynienia wtedy, gdy dostęp do wszystkich pól w klasie jest możliwy tylko i wyłącznie poprzez metody, lub inaczej mówiąc gdy wszystkie pola w klasie znajdują się w sekcji prywatnej (lub chronionej).

Nazywamy metody i zmienne atrybutami obiektu.

CZYNNOŚCI OBIEKTU = METODY

DANE DO METOD=ZMIENNE OBIEKTU

Klasa jest wzorcem definiującym metody i zmienne, które wchodzą do danego rodzaju obiektów a pokażemy, że stanowi typy zmiennych obiektowych.

- co robi konstruktor kopiujacy

- roznica miedzy typem wbudowanym a definiowanym

- dlaczego nie mozna dziedziczyc operatora przypisania

Dziedziczenie powoduje, że każdy obiekt klasy pochodnej ma faktycznie dwuczęściową budowę. Jedna część to składniki odziedziczone, a druga to zdefiniowane lub dodane w klasie pochodnej. Operacje przypisania także rozdzieliłyby się na dwie części. W takiej sytuacji przypisanie, które oznacza posługiwanie się w operacjach wytworzoną do tego celu kopią wielkości przypisywanej musi jeszcze rozróżnić, gdzie jest zakres klasy podstawowej, a gdzie zakres klasy pochodnej przy tworzeniu przypisywanych kopii. To mogłoby wywołać spore zamieszanie w gospodarowaniu pamięcią operacyjną.

Jeżeli w pamięci operacyjnej komputera ma zaistnieć obiekt, to muszą być wykonane czynności rozmieszczenia atrybutów opisujących ten obiekt w pamięci. Wykonują to funkcje nazywane KONSTRUKTOREM przy tworzeniu i DESTRUKTOREM przy usuwaniu obiektu.

Jeżeli nie zastosowano konstruktora to obiekt jest obecny w pamięci ale zawartość jego pól jest przypadkowa do momentu nadania im przez jedną z metod wartości.

Klasa jest wzorcem definiującym metody i zmienne, które wchodzą do danego rodzaju obiektów a pokażemy, że stanowi typy zmiennych obiektowych.

Robi to tak, że korzysta z ukrytego przed nami wskaźnika this, który jest inicjalizowany w momencie pojawienia się operatora kropki po nazwie obiektu. Ten wskaźnik pokazuje funkcji na którym egzemplarzu (konkrecie, instancji) obiektów klasy ma wykonać swoje czynności.



Wyszukiwarka

Podobne podstrony:
Programowanie obiektowe(ćw) 1
Zadanie projekt przychodnia lekarska, Programowanie obiektowe
Programowanie obiektowe w PHP4 i PHP5 11 2005
Programowanie Obiektowe ZadTest Nieznany
Egzamin Programowanie Obiektowe Głowacki, Programowanie Obiektowe
Jezyk C Efektywne programowanie obiektowe cpefpo
Programowanie Obiektowe Ćwiczenia 5
Programowanie obiektowe(cw) 2 i Nieznany
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
przeciazanie metod i operatorow, Programowanie obiektowe
projekt06, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
projekt07, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
Programowanie Obiektowe Cz2, Dziedziczenie proste
Programowanie obiektowe, w2, 2
Programowanie obiektowe, wyklad6-czesc1, Dziedziczenie wielobazowe

więcej podobnych podstron