PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

Podobne dokumenty
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Informatyka 2. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

dr inż. Jarosław Forenc

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Podstawy Programowania Obiektowego

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Programowanie 2. Język C++. Wykład 3.

PARADYGMATY PROGRAMOWANIA Wykład 4

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Programowanie komputerowe. Zajęcia 7

Materiały do zajęć VII

Zaawansowane programowanie w języku C++ Klasy w C++

Konstruktor destruktor Programowanie obiektowe

Informatyka 2. Wykład nr 2 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Podstawy Programowania Obiektowego

PARADYGMATY PROGRAMOWANIA Wykład 2

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Kompozycja i dziedziczenie klas

Wykład 5: Klasy cz. 3

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Wstęp do Programowania 2

Informatyka 2. Informatyka 2. Wykład nr 1 ( ) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Wykład 8: klasy cz. 4

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Język C++ Programowanie obiektowe

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Rozdział 4 KLASY, OBIEKTY, METODY

Technologie i usługi internetowe cz. 2

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Do czego służą klasy?

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Programowanie Obiektowe i C++

Pola i metody statyczne

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY


Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: KLASY I OBIEKTY, DANE I FUNKCJE SKŁADOWE, PRAWA DOSTĘPU, KONSTRUKTORY I DESTRUKTORY.

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Enkapsulacja, dziedziczenie, polimorfizm

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

ALGORYTMY I STRUKTURY DANYCH

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

TEMAT : KLASY DZIEDZICZENIE

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Programowanie obiektowe w języku

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Programowanie 2. Język C++. Wykład 2.

Programowanie obiektowe

C++ - [4-7] Polimorfizm

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Programowanie obiektowe

Wartości domyślne, szablony funkcji i klas

Dziedziczenie. Ogólna postać dziedziczenia klas:

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Do czego służą klasy?

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Definiowanie własnych klas

Zaawansowane programowanie w C++ (PCP)

Dziedziczenie jednobazowe, poliformizm

Mechanizm dziedziczenia

Laboratorium 1 - Programowanie proceduralne i obiektowe

OBIEKTY PHP. G. Panuś

KLASY cz.1. Dorota Pylak

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Klasa, metody, rozwijanie w linii

Programowanie, część I

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Kurs WWW. Paweł Rajba.

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

Wprowadzenie do szablonów szablony funkcji

Dokumentacja do API Javy.

Transkrypt:

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto. W odniesieniu do sposobu definiowania przedmiotów wyst puj cych w rzeczywisto ci wykształciły si dwa zasadnicze podej cia: PROCEDURALNE - tworzymy struktur zawieraj c parametry definiuj ce przedmiot i jego stan, a odseparowane funkcje okre laj jego wła ciwo ci struct punkt int x,y; ; void rysuj(struct punkt p) // ciało funkcji OBIEKTOWE - dane definiuj ce przedmiot i metody (funkcje składowe) okre laj ce jego wła ciwo ci umieszczamy we wspólnym miejscu - klasie class PUNKT int x,y; void rysuj(void); ; Definicja klasy słowo kluczowe nazwa klasy class nazwa_typu // ciało klasy, czyli okreslenie z czego składa si klasa ; rednik Zmienne powyszego typu nazywa si obiektami. Jeli chcemy utworzy obiekt powyszej klasy, to podobnie jak przy deklaracji innych zmiennych podajemy nazw typu i nazw obiektu: nazwa_typu x; nazwa_typu *y; PUNKT x; PUNKT *y; - obiekt klasy nazwa_typu - wskanik na obiekty typu nazwa_typu 1

Składniki klasy Składnikami klasy mog by: - dane (dane składowe, pola, atrybuty) - oznaczaj to samo co pola w strukturach, char nazwisko [30]; ; Do danych w klasie odwołujemy si w taki sam sposób jak w strukturach do jej pól: obiekt.dana wska nik->dana osoba x,*y; x.wiek = 15; y = &x; y->wiek = 20; - funkcje (metody) - s to funkcje operuj ce na danych składowych klasy char nazwisko [30]; void zapisz(char *i, char *n, int w); ; - funkcja Do funkcji w klasie odwołujemy si w taki sam sposób jak do jej danych. obiekt.funkcja(argumenty) wska nik->funkcja(argumenty) osoba x,*y; x.zapisz( Jan, Kowalski,30); y = &x; y->zapisz( Adam, Kowalski,25); Deklaracje danych i funkcji mog by umieszczane w klasie w dowolnej kolejnoci. Niezalenie od miejsca zdefiniowania składnika wewn trz klasy - składnik znany jest w całej definicji klasy. Prawa dost pu do składników klasy Dla składników klasy (danych i funkcji) okre la si trzy prawa dost pu: - private (prywatne) oznacza, e funkcje i dane klasy dost pne s tylko z wn trza klasy. Dla danych oznacza to, e tylko funkcje b d ce składnikami klasy mog te dane odczytywa lub do nich co zapisywa. Dla funkcji oznacza to, e mog one 2

zosta wywołane tylko przez inne funkcje składowe tej klasy (oraz tzw. funkcje zaprzyja nione). Jest to warto domy lna, czyli je li nie zdefiniujemy sami uprawnie, to składniki maja prawo dost pu private, - public (publiczne) - komponenty publiczne s ogólnie dost pne, mo na si do nich odwoływa z wn trza klasy lub spoza klasy tak samo jak do pól struktur lub funkcji, - protected (zabezpieczone) - dost p jest taki sam jak dla private, ale dodatkowo s one dost pne dla klas wywodz cych si od tej klasy (dziedziczenie). Definiowanie funkcji składowych wewn trz klasy funkcja zdefiniowana wewn trz klasy jest funkcj inline, tzn. e podczas kompilacji wsz dzie tam, gdzie wyst puje wywołanie funkcji zostanie wstawiony jej kod void zapisz(char *i, char *n, int w) void drukuj(void) printf( %s %s, wiek: %d\n,imie,nazwisko,wiek); ; void zapisz(char *i, char *n, int w); ; deklaracje funkcji void osoba::zapisz(char *i, char *n, int w) :: - operator zakresu, pokazuje do jakiej klasy nale y funkcja void osoba::drukuj(void) printf( %s %s, wiek: %d\n,imie,nazwisko,wiek); 3

Konstruktor osoba(char *i,char *n,int w); ; osoba::osoba(char *i,char *n,int w) - konstruktor słu y do nadania warto ci pocz tkowych obiektowi (cho nie tylko), - wywoływany jest w momencie tworzenia obiektu, - mo e mie kilka wariantów czyli ró n liczb parametrów (przeładowanie), - nazwa konstruktora jest taka sama jak nazwa klasy, - dla konstruktora nie okre lamy typu zwracanej warto ci (nie mo e tam wyst pi nawet void). bez konstruktora: z konstruktorem: lub osoba os1; os1.zapisz( Jan, Kowalski,30); osoba os1( Jan, Kowalski,30); osoba os1 = osoba( Jan, Kowalski,30); Destruktor osoba(char *i,char *n,int w); ~osoba(void); ; osoba::~osoba()... - destruktor wywoływany jest wtedy, gdy obiekt jest likwidowany (destruktor mo na wywoła jawnie - nie spowoduje on jednak usuni cia obiektu), - jego nazwa jest taka sama jak nazwa klasy, ale przed jego nazw umieszcza si znak ~, - zadaniem destruktora jest posprz tanie po obiekcie, np. zwolnienie pami ci, - dla destruktora nie okre lamy typu zwracanej warto ci. 4

(zastosowanie konstruktora i destruktora) #include <stdio.h> #include <conio.h> #include <string.h> char *imie; char *nazwisko; osoba(char *i, char *n, int w); ~osoba(); void drukuj(); ; osoba::osoba(char *i, char *n, int w) imie = new char[strlen(i)+1]; nazwisko = new char[strlen(n)+1]; osoba::~osoba() delete imie; delete nazwisko; void osoba::drukuj() printf("%s %s, wiek: %d\n",imie,nazwisko,wiek); int main() osoba os1("jan","kowalski",30); clrscr(); os1.drukuj(); getch(); return 0; 5