final韎tion


Funckja jest to podprogram grupuj膮cy instrukcji, sluza: 艂atwemu powtarzaniu pewnego cyklu obliczen, zwiekszeniu przejrzysto艣ci programu. Wywoluje si臋 je przez podanie jej nazwy i w nawiasie argumentow np. float pole_kwadratu (float bok);. Przesylanie argumentow do funkcji nastepuje przez warto艣膰 (w def fkcj wyst臋puj膮 parametry formalne, przy wywolaniu fkcji pos艂ugujemy si臋 param aktualnymi), referencje (deklaracja jest inna: void Zmiana(int x, int &y), znak & powoduje ze zmienna globalna b i lokalna y zajmuja to samo miejsce w pamieci operacyjnej) lub wska藕nik. Funkcja inline, uzywana w celu przyspieszenia obliczen, deklarujemy i definiujemy ja na pocz膮tku programu, przy wywolaniu kompilator umie艣ci jej tresc w miejscu wywoalnia np.: inline int zaok(float x) {return (x+0.5);} By korzystac w pliku B ze zmiennych zdeklarowanych w pliku A to trzeba w B umie艣ci膰 deklaracje extern int a; (extern informuje kompilator o tym ze zmienna a jest typu int i ze jej definicja mo偶e znajdowac si臋 w innym pliku). Tablica jest to zbior elementow tego samego typu kt贸re zajmuja ci膮g艂y obszar w pamieci, SA one typem pochodnym, tzn buduje si臋 je z elementow typu sk艂adowego np. int A[50]; rozmiar tablicy musi by膰 znany ju偶 w trakcie kompilacji

Wska藕nik sluzy do wskazania jakiegos miejsca w pamieci oraz zawiera wiedze o tym jaki typ obiektu wskazuje int * w; char * wsk; do nadawania wska藕nikowi warto艣ci pocz膮tkowej sluzy jednoargumentowy operator &, oblicza on adres obiektu kt贸ry stoi po prawej stronie operatora przypisania. Void * wsk; - jest wska藕nikiem dowolnego typu. Wska藕niki umo偶liwiaj膮 ulepszenie pracy z tablicami, w funkcjach do zmieniania warto艣ci przesylanych do nich argumentow, dostep do specjalnych obszarow pamieci, rezerwacja obszarow pamieci - jest ona wykonywana przez polecenia new i delete, taki obiekt nie ma nazwy (mo偶na nim operowac jedynie za pomoca wska藕nik贸w), obiekty utworzone operatorem New po utworzeniu przechowuja warto艣ci przypadkowe. Definicja struktury struct nazwa { //lista sk艂adnik贸w }; Je偶eli do obiektu strukt. Odwolujemy si臋 za pomoca wska藕nik to dostep do poszczeg贸lnych Pol uzyskujemy za pomoca operatora -> Klasa jest to typ definiuj膮cy kilka zebranych razem danych jak r贸wnie偶 spos贸b ich zachowania si臋 jako ca艂o艣ci: class identyfikator { cialo klasy}; gdzie cialo klasy zawiera deklaracje sk艂adnik贸w. Sk艂adnikami mog膮 by膰 roznego typu dane, nazywane danymi sk艂adowymi aktualnej klasy: class okrag { public: int x, y, r; }; Sk艂adnikami klacy mog膮 tez by膰 funkcje (funkcje sk艂adnikowe). Funkcje maja zakres klasy (ograniczone {} ). Sk艂adnik private jest dost臋pny tylko dla sk艂adowych danej klasy, je偶eli zalezy nam na ukryciu informacji to w贸wczas sk艂adnik powinien by膰 deklarowany jako prywatny. Sk艂adnik protected jest dost臋pny tak jak private ale dodatkowo jest dost臋pny dla klas wywodz膮cych si臋 z danej klasy. Sk艂adnik public jest dost臋pny bez ogranicze, zwykle sk艂adnikami takimi SA wybrane funkcje sk艂adowe. Je偶eli nie ma zadnej z powy偶szych etykiet sk艂adniki maja dostepn private. Funkcje sk艂adowe maja pelny dostep do wszystkich sk艂adnik贸w swojej klasy: nazwa_obiektu . Nazwa_funkcji (argumenty);

Konstruktor Class Numer {int Liczba; public: Numer (int L) {Liczba =L;}} Jest specjalna funkcja skaldowa wywolywana zawsze w chwili tworzenia obiektu danej klasy, zadaniem konstruktora jest inicjalizacja danych skladowcyh obiektu danej klasy, przydzielenia pamieci do jego elementow oraz wykonanie czynno艣ci niezbednych do prawid艂owego utworzenia obiektu. Nazwa konstruktora musi by膰 taka sama jak nazwa klasy, kons nie zwraca warto艣ci. Mo偶e by膰 wiecej ni偶 jeden konstruktor na kalse, Destruktor jest specjalna funkcja wywolywana w chwili likwidacji obiektu klasy, jest przeciwie艅stwem konstruktora, do jego zadan nale偶y zwalnianie zasobow wykorzystywanych przez obiekt, mo偶e by膰 definiowany tylko raz, nie zwraca warto艣ci a jego nazwa to nazwa klasy poprzedzona ~. Pola klasy jej lokalne zmienne, funkcjonuja tak samo jak pola struktury i roznia si臋 od ostatnich wy艂膮cznie domyslna kategoria dost臋pu (private). Wska藕nik his, deklaracja ka偶dej klasy zawiera ukryte pole wska藕nikowe o

nazwie his, po utworzeniu obiektu wska藕nik his zawiera adres obiektu w pamieci. Pozwala on zdefiniowac w艂a艣ciciela danych do kt贸rych si臋 odwoluje funkcja skaldowa. Dziedziczenie jest to technika pozwalajaca na definiowanie nowej klasy przy wykorzystaniu klasy isteniejacej class nowy_pkt : public pkt { public char opis[10]; nowy_pkt (float =0, float =0, char*=NULL); void wypisz(); };

Si臋 nie dziedzicz/? Konstruktor贸w. Pow贸d jest prosty. Klasa pochodna zawiera elementy klasy podstawowej plus dodatkowe sk艂adowe z klasy pochodnej. Konstruktor z klasy podstawowej nie inicjuje sk艂adowych danych z obiektu pochodnego. Destruktor贸w. Destruktor jest 艣ci艣le powi膮zany z konstruktorem. Dlatego ten z klasy podstawowej nie mo偶e by膰 u偶yty w klasie pochodnej. Rozr贸偶niamy dziedziczenie: 1. pojedyncze 2. wielokrotne

W przypadku dziedziczenia pojedynczego klasa pochodna posiada dok艂adnie jedn膮 klas臋 bazow膮 (hierarchia klas dla tego dziedziczenia maj膮 struktur臋 drzewiast膮). W przypadku dziedziczenia wielokrotnego klasa pochodna ma wi臋cej ni偶 jedn膮 klas臋 bazow膮 (hierarchia klas dla tego dziedziczenia maj膮 struktur臋 grafu).| Przes艂anianiem nazywamy predefiniowanie funkcji klasy bazowej w klasach pochodnych; • Przes艂anianie stosuje si臋 w celu ca艂kowitej zmiany dzia艂ania funkcji klasy bazowej lub, znacznie cz臋艣ciej, jej uzupe艂nienia i rozszerzenia o dodatkowe operacje; • Przes艂aniaj膮c funkcje klasy bazowej musisz zapewni膰 Identyczno艣膰 nag艂贸wk贸w funkcji • Istotne jest r贸wnie偶 aby funkcje z klasy bazowej by艂y dost臋pna dla klas pochodnych. Zapewnia to operator zakresu: public, protected w definicji klasy. class nowy_punkt : public punkt {....}; class nowy_punkt : protected punkt {....},Zastosowanie funkcji wirtualnych umo偶liwia przes艂oni臋cie funkcji klasy bazowej i unikni臋cia problem贸w zwi膮zanych z u偶yciem wska藕nik贸w lub referencji. Zastosowanie operatora zakresu :: umo偶liwia jawne wywo艂anie przes艂oni臋tej funkcji funkcji bazowej (Je艣li s膮 one typu virtual). Funkcj膮 wirtualn膮 nazywamy funkcj臋 wywo艂ywan膮 zawsze

Iw obr臋bie posiadaj膮cej j膮 klasy (tj. klasy, w kt贸rej j膮 zdefiniowano); • Poprzedzenie deklaracji s艂owem kluczowym wirual powoduje, 偶e wszystkie odwo艂ania do funkcji b臋d膮 zawsze wykonywane w obr臋bie klasy, kt贸ra j膮 zdefiniowa艂a; W praktyce polimorfizm oznacza mo偶liwo艣膰 wywo艂ania funkcji na rzecz r贸偶nych obiekt贸w. J臋zyk C++ umo偶liwia polimorfizm przez: a) mo偶liwo艣膰 stosowania tych samych nazw dla funkcji sk艂adowych r贸偶nych klas (ta sama nazwa funkcji - r贸偶ne dzia艂anie) b) przeci膮偶enie funkcji c) funkcje wirtualne Klasy abstrakcyjne Klasa abstrakcyjna to klasa, kt贸ra nie reprezentuje 呕adnego konkretnego obiektu Np klasa ssak nie ma obiekt贸w i istnieje tylko po to by mie膰 klasy pochodne (cz艂owiek psy, koty, konie, 艣winia, baran) Ssak jest zatem poj臋ciem abstrakcyjnym - klas膮 Abstrakcyjn膮 Klasa abstrakcyjna pozwala zaoszcz臋dzi膰 pracy przy programowaniu, wsp贸lne cechy i zachowanie (np. przesu艅, rysuj) kilku klas definiujemy jednokrotnie



Wyszukiwarka

Podobne podstrony:
Architecting Presetation Final Release ppt
Opracowanie FINAL miniaturka id Nieznany
Art & Intentions (final seminar paper) Lo
FINA艁, 3 rok, edukacja ekologiczna
pyt contr final
KRO Final
FInal pkm 3
Raport FOCP Fractions Report Fractions Final
FINAL
fizyka egzamin paja final
CCNA 2 Final Exam v
05 Daimler GroupA FINAL
Palm Beach Perfect FINAL
9 Word formation final version Nieznany (2)
CCNA Final Exam
130107151016 bbc english at work episode 48 final
CCNA1 Final Exam version 4
Kroniki Ziemii final
ETwP TEST ODP WYJAS Final
moldova enp ap final en

wi臋cej podobnych podstron