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

Podobne dokumenty
Programowanie i struktury danych

Programowanie obiektowe w C++ Wykªad 4

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

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

Wzorce projektowe strukturalne cz. 1

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

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji

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

TEMAT : KLASY POLIMORFIZM

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

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

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

1 Wska¹niki. 1.1 Wska¹nik typu VOID. Wska¹nik jest obiektem przechowuj cym adres (z pami ci) przypisanej do niego zmiennej.

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

Podstawy Programowania Obiektowego

Mechanizm dziedziczenia

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy Programowania Obiektowego

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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

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

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

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

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

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Wstęp do Programowania 2

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

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

Programowanie - wykład 4

Listy i operacje pytania

Wyjątki (exceptions)

Do czego służą klasy?

1. Wprowadzenie do C/C++

Struktury Struktura polami struct struct struct struct

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

Wstęp do programowania

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

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

Paradygmaty programowania

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

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

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

dr inż. Jarosław Forenc

Wska¹niki, tablice dynamiczne wielowymiarowe

Techniki Programowania wskaźniki

Programowanie w C++ - wybrane przykłady szablonów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

1. Wprowadzenie do C/C++

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

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

Programowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Mechanizm dziedziczenia

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Laboratorium 1 - Programowanie proceduralne i obiektowe

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

Sposoby przekazywania parametrów w metodach.

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Wykład 5: Klasy cz. 3

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Funkcje składowe (metody)

TEMAT : KLASY DZIEDZICZENIE

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

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Do czego służą klasy?

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

Dziedziczenie & W slajdach są materiały zapożyczone z

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

Model obiektu w JavaScript

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:


Projektowanie klas c.d. Projektowanie klas przykład

Operacje wejścia/wyjścia (odsłona druga) - pliki

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

KLASY cz.1. Dorota Pylak

Zadanie 2: Arytmetyka symboli

Pola i metody statyczne

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Programowanie obiektowe

Wstęp do programowania

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

Szablony funkcji i szablony klas

PARADYGMATY PROGRAMOWANIA Wykład 3

Zwracanie obiektu. Funkcja może zwracać obiekty: #include"stdafx.h #include <iostream> using namespace std; class samp { inti; public:

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

Programowanie obiektowe język C++

Wprowadzenie do szablonów szablony funkcji

Transkrypt:

1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja klasy. class nasz_typ { //cialo klasy Jak wida wy»ej, denicja klasy nie jest trudna. Nale»y u»y instrukcji class, poda nazw klasy (nowego typu) a nast pnie doda klamry otwieraj c i zamykaj c (pomi dzy nie wprowadzamy zawarto± ciaªa klasy) po czym dodajemy ±rednik. 1.2 Skªadniki klasy. W celu utworzenia obiektu klasy post pujemy analogicznie jak w przypadku tworzenia zmiennych: nasz_typ nazwa_obiektu; W C++ istnieje mo»liwo± stworzenia typu pochodnego do danej klasy (wska¹nika lub referencji): nasz_typ * wsk; // wskaznik nasz_typ jakisobiekt; nasz_typ &przezwisko = jakisobiekt // referencja We wcze±niejszej denicji mo»na odszuka puste miejsce tzw. ciaªo klasy. To w nim deklarujemy skªadniki klasy. Skªadnikami klasy mog by ró»nego typu dane: class procesor { int l_rdzeni; float takt_zegara; 1

int l_watkow; char nazwa[80]; W celu odniesienia si do skªadników obiektu u»ywamy nast puj cej notacji: { obiekt.skªadnik { wska¹nik -> skªadnik { referencja.skªadnik Zaªó»my,»e tworzymy nast puj ce obiekty i przeprowadzamy na nich operacje: procesor i5; procesor * wsk; procesor & ipiatka; // definicja egzemplarza obiektu //definicja wskaznika // definicja referencji Aby przypisa warto± do skªadnika l si nast puj cymi metodami: rdzeni w obiekcie i5 nale»y posªu»y i5.l_rdzeni = 4; wsk = &i5; wsk -> l_rdzeni = 4; ipiatka.l_rdzeni = 4; Skªadnikami klasy mog by równie» funkcje. Nazywaj si one funkcjami skªadowymi. Za ich pomoc zwykle pracuje si na danych skªadowych. class telefon_kom { void dzwon(int num); void wibruj(bool wib); int numer_tel; bool wibracja; char nazwa_kontaktu[80]; char wyswietl_num_dzwoniacego (char kont[]); W powy»szej denicji mo»na zauwa»y,»e deklaracje funkcji pomieszane s z deklaracjami danych. Dzieje si tak, gdy» zakres wa»no±ci zadeklarowanych w klasie danych obejmuje caª klas. Skªadnikiem klasy mo»e by nie tylko dana typu wbudowanego. Mo»na rów- 2

nie» wykorzysta obiekt innej zdeniowanej klasy. 1.3 Etykiety. W powy»szych przykªadach mo»na byªo zaobserwowa element public. Byªa to tak zwana etykieta klasy. Klasy mog posiada trzy rodzaje etykiet: { private { oznacza ona,»e zadeklarowane za ni skªadniki b d dost pne jedynie w obr bie danej klasy. Oznacza to,»e jedynie funkcje skªadowe b d mogªy na nich operowa ; { public { oznacza ona,»e zadeklarowane za ni skªadniki b d dost pne zarówno w obr bie klasy jak i poza ni ; { protected { ta etykieta daje dost pno± tak jak etykieta private, ale dodatkowo udost pnia skªadowe klasom wywodz cym si od klasy w której jest u»yta. Zakªada si,»e dopóki w denicji klasy nie wyst pi»adna etykieta skªadniki uzyskuj dost p private. 1.4 Funkcje skªadowe. Funkcja skªadowa sªu»y do dokonania operacji na danych skªadowych klasy. Jest równie» jedynym (cho nie do ko«ca) narz dziem do przeprowadzania operacji na skªadnikach z etykiet private. Funkcj wywoªuje si dla konkretnego obiektu danej klasy. nazwa_obiektu.nazwa_funkcji_skladowej(argument); Mamy nast puj c klas 1 : class osoba { char nazwisko[80]; int wiek; void zapamietaj(char *, int); void wypisz(); oraz obiekty: osoba student1, student2, student3; 1 J. Gr bosz, Symfonia C++ 3

w celu skorzystania z funkcji skªadowej: student1.zapamietaj("jan Kowalski", 23); Funkcje skªadowe mo»na deniowa w dwóch miejscach: { wewn trz samej denicji klasy; { po zadeklarowaniu wewn trz denicji klasy funkcj umieszczamy poza jej ciaªem. Nale»y wówczas przed nazw funkcji (ale po typie zwracanych danych) doda nazwa klasy:: Przykªad: #include <iostream> using namespace std; class procesor { int l_watkow; int l_rdzeni; int parametry_proc(int wat, int rdz) { l_watkow = wat; l_rdzeni = rdz; void wysw_param(); void procesor::wysw_param() { cout << "\nprocesor posiada " << l_watkow << " watkow"; cout << "\nprocesor posiada " << l_rdzeni << " rdzeni"; main() { procesor i5, i7; cout << "Program przechowuje i wyswietla informacje na temat " << "procesorow\n"; i5.parametry_proc(4, 4); i7.parametry_proc(8, 4); cout << "\n\ti5\n"; i5.wysw_param(); cout << endl; cout << "\n\ti7\n"; i7.wysw_param(); 4

cout << endl; s.wysw(); return 0; Zadanie Stworzyć obiekt postać gry w oparciu o napisaną klasę. Obiekt powinien posiadać podstawowe cechy takie jak: siła, zręczność, magia, intelekt, zdrowie itd. suma punktów poszczególnych cech ma wynosić 100. Można użyć skalowania. 5