Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.

Slides:



Advertisements
Podobné prezentace
ÚVOD DO C++ 3 TŘÍDY a objekty - POKRAČOVÁNÍ
Advertisements

Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Název projektu: Výuka programování na střední škole.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Funkce Připomeňme si program pro výpočet faktoriálu:
Uživatelem definované typy doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmy I Cvičení č. 1.
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
Programování v C++ cvičení Filip Zavoral.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Čtvrté cvičení Objektové programování Objektový model v Javě
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Objektové programování
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
6. cvičení Polymorfismus
PB161 Právo friend, přetěžování operátorů, přetypování PB161 | Friend, operátory PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Čísla Desetinná čísla. čísla desetinná se v PC ukládají jiným způsobem než čísla celá – výpočty s nimi provádí dvě odlišné části procesoru při výpočtech.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
Cvičení Filip Zavoral.  Docházka ◦ aktivní účast, znalost předchozí látky ◦ 3 nepřítomnosti OK, déledobější domluvit předem  DÚ ◦ uprostřed semestru.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
POSLOUPNOST úkol 1_41. ZADÁNÍ Sestavte program, který doplní tabulku nepřímé úměrnosti pro hodnoty proměnné x = 1, …, n. Nepřímá úměrnost je zadána uživatelem.
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
PŘÍKAZ while úkol 1_42.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
NEÚPLNÁ PODMÍNKA V JAVĚ úkol 1_26. ZADÁNÍ Napište zdrojový kód k zadanému vývojovému diagramu.
ZADÁNÍ Sestavte program, který vytiskne n hvězdiček.
PŘÍKAZ for úkol 1_47.
NEÚPLNÁ PODMÍNKA V JAVĚ úkol 1_25. ZADÁNÍ Sestavte program, který po načtení čísla z klávesnice vypočítá jeho absolutní hodnotu a vytiskne ji na obrazovku.
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
Uživatelská rozhraní Cvičení 12a Martin Němec A
PŘÍKAZ do - while úkol 1_43.
PŘÍKAZ while úkol 1_40.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Y36PJC Programování v jazyce C/C++
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Výukový materiál zpracován v rámci projektu
Y36PJC Programování v jazyce C/C++
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 3
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
ZAL – 7. cvičení 2016.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka

Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance – proměnná typu třída

Přiřazování objektů class test { int a,b; public: void fun1(int i, int j){a=i;b=j} void show()(cout << a<< ’ ’<<b<< ”\n”;) }; void main() { test O1,O2; // Vytvoření O1 a O2 (případy třídy test) O1.fun1(5,6); // Vložení hodnot do fun1 (a=5, b=6) O2=O1; // Přiřazení objektů (přiřadí se i data) O1.show(); // Vypíše hodnoty 5 6 O2.show(); // Vypíše hodnoty 5 6 return 0; }

Předávání objektů funkcím hodnotou class test { int a; public: test(int i){a=i} int get_a()(return a;) }; int kva_a(test x) // kva_a přebírá argument třídy test { return x.get_a()* x.get_a(); // Provede se kvadrát argumentu } int main() { test a(5),b(6); // a a b jsou případem třídy test cout << kva_a(a)<< ”\n”; // Vypíše číslo 25 cout << kva_a(b)<< ”\n”; // Vypíše číslo 36 return 0; }

Předávání objektů funkcím adresou class test { int i; public: test(int n) {i=n;} void set_i(int n) {i=n;} int get_i() {return i;} }; void sqr_it(test *o) { o->set_i(o->get_i() * o->get_i()); //Nastaví o.i na kvadrát. // To ovlivní volající argument. cout get_i(); } // Vypíše se : Hodnota kopie argumentu i je: 25 int main() { test a(5); sqr_it(&a); // Předá adresu a do sqr_it() cout << "a v main()ma po zmene hodnotu: "; cout << a.get_i(); //Vypíše: a v main() ma po zmene hodnotu: 25 return 0; }

Vrácení objektů funkcemi class test { char a[100]; public: void show(){cout << a << ”\n”;} void set_a(char *str)(strcpy(a,str);) }; test inp() // návratová funkce typu test { char a[100]; test str; // vytvoří se lokální objekt str cout << “Vloz retezec:”; // načtení řetězce do a cin >> a; str.set(a); // kopie řetězce do str.a return str; //vrácení řetězce do str } int main() { test O1; //O1 je případem třídy test O1=inp(); //přiřazení funkce objektu O1.show(); //vypíše řetězec na obrazovku return 0; }

Rozdíl mezi ukazatelem a referencí ► nová možnost v C++ „reference“ ► ukazatele (pointery)  chci-li znát přímou hodnotu odkazovanou pointerem, musím jej dereferencovat  proto musím vždy vědět, jestli proměnná je ukazatel  přiřazením a := b, kde b je ukazatel, dojde ke zkopírování ukazatele. Vzniknou tedy dva ukazatelé na stejné místo ► reference  není rozdíl mezí proměnnou s přímou hodnou a její referencí  tím pádem není třeba provádět dereference  takže přiřazením a := b, kde b je reference, dojde ke zkopírování přímé hodnoty proměnné ► reference nemůže ukazovat na NULL

Kopírovací konstruktor (copyconstructor) ► speciální typ konstruktoru, který inicializuje instanci podle jiné instance stejné třídy komplex(const komplex &src) { // kopírovací konstruktor // volá se vždy při předávání hodnoty typu komplex // zkopíruje reálnou i imaginární část this->Re = new int(*src.Re); this->Im = new int(*src.Im); }

Použití kopírovacího konstruktoru ► v definici komplex C(1,2), D(C); ► v přiřazení A = B + C je nutné ke kopírovacímu konstruktoru ještě přetížit operátor + a = operátor + sečte B a C a kopírovacím konstruktorem se vytvoří temporary instance X a dále probíhá přiřazení A = X pomocí přetíženého operátoru =

Zadání cvičení ► 1. Pomocí tříd sestavte program pro součet a násobení dvou matic A a B s dynamickou alokací paměti ► naprogramujte také kopírovací konstruktor pro inicializaci instance jinou instancí; trida A, B(A); ► program umístěte do samostatného hlavičkového souboru, nakreslete vývojový diagram ► ► použití nového „cout <<“ místo „printf()“ ► použití new a delete ► bodování: funkce (1 bod), rychlost (1 bod), stabilita a délka prog. (1 bod), implementace v hl. souboru (1 bod)