Základy C++ I. Jan Hnilica Počítačové modelování 18
|
|
- Vítězslav Dvořák
- před 5 lety
- Počet zobrazení:
Transkript
1 Základy C++ I 1
2 Přechod z C na C++ jazyk C++ je nadmnožinou jazyka C z hlediska syntaxe se jedná o velmi podobné jazyky, spolu s dalšími jazyky "céčkovské" rodiny, jako je např. C# každý platný program v C je zároveň platným programem C++ vše, co jste se dosud naučili z jazyka C, můžete využít v C++ jazyk C++ dědí i celou knihovnu jazyka C oproti C však C++ nabízí významný krok novým směrem, kterým je podpora tzv. objektově orientovaného programování 2
3 Přechod z C na C++ program vypisující řetězec "KUK!!!" na monitor #include <iostream> int main() std::cout << "KUK!!!"; return 0; Rozbor vkládání hlavičkových souborů pomocí příkazu preprocesoru #include, stejně jako v C soubor iostream zajišťuje standardní vstup a výstup (jako stdio.h v C) funkce main má stejný význam jako v C, včetně příkazu return 0; výpis na monitor zajišťován objektem std::cout, následovaným operátorem << (rozbor na další straně) 3
4 Výpis na monitor - objekt cout na rozdíl od funkce pritf se při použití cout neuvádí formát vypisované proměnné std::cout << "retezec"; // výpis řetězcové konstanty std::cout << 5; // výpis konstanty 5 std::cout << n; // výpis proměnné n std::cout << 'c'; // výpis znaku c výpisy je možné zřetězit za sebe int p = delka * sirka; std::cout << "plocha je " << p << " metru ctverecnich"; odřádkování pomocí znaku '\n' (jako v C) std::cout << "prvni radek\n"; std::cout << "druhy radek"; pomocí manipulátoru std::endl std::cout << "prvni radek" << std::endl; std::cout << "druhy radek"; pozn. použití std::endl rovněž vyprázdní výstupní buffer 4
5 Výpis na monitor příznak std:: před cout nebo endl říká, že tyto objekty patří do tzv. standardního oboru názvů (namespace - později) není ale nutné psát std:: před každým použitím cout nebo endl, kód lze zjednodušit pomocí příkazu using varianta 1: uvedeme výčet všech objektů, které hodláme používat int main() using std::cout; using std::endl; // teď můžeme používat cout a endl bez std:: cout << "vypisuju bez std::, pohoda..." << endl; return 0; varianta 2: deklarujeme, že budeme používat celý namespace using namespace std; // teď můžeme používat všechny objekty standardního oboru názvů // bez specifikace std:: 5
6 Čtení z klávesnice pomocí objektu std::cin, který je rovněž deklarován v souboru iostream čtení provádíme s pomocí operátoru >> pro psaní std:: před cin platí to samé jako v případě cout a endl #include <iostream> using namespace std; int main() int a, b; cout << "zadejte dve cela cisla: "; cin >> a; cin >> b; int soucet = a + b; int soucin = a * b; cout << "soucet je " << soucet << ", soucin je " << soucin << endl; return 0; čtení více proměnných můžeme spojit do jednoho příkazu: cin >> a >> b; 6
7 Čtení z klávesnice načtení jednoho znaku lze provádět funkcí get objektu cin // buďto takto // nebo takto char znak = cin.get(); cin.get(znak); načtení řetězce lze provést pomocí operátoru <<, který ale končí načítání při dosažení prvního bílého znaku (nový řádek, mezera, tabulátor) char retezec[50]; cin >> retezec; načítáme-li řetězec "ahoj", bude vše v pořádku načítáme-li "ahoj kámo", načte se jen "ahoj" načtení celého zadaného řetězce včetně mezer provedeme opět funkcí get funkce kromě řetězce přijímá druhý argument, kterým je maximální počet načítaných znaků char retezec[50]; cin.get(retezec, 50); alternativou pro načtení celého řetězce je funkce getline cin.getline(retezec, 50); ROZDÍLmezi get a getline je v tom, že get zanechává na vstupu znak enter (nový řádek), kterým uživatel zakončil svůj vstup, kdežto getline ho zahodí všechny funkce doplní načtený řetězec ukončovací nulou '\0' 7
8 Inline funkce funkce uvozené klíčovým slovem inline inline double Vetsi(double a, double b) if (a > b) return a; else return b; při klasickém volání funkce dochází k přerušení chodu volající funkce, provádění se přesune do volané funkce a když ta skončí svou činnost, následuje opět skok do volající funkce u funkce deklarované jako inline se toto neděje, kompilátor místo toho zkopíruje kód funkce přímo do místa volání, takže nedojde ke skokům do/z funkcí, které mírně zpomalují chod programu jako inline má smysl psát pouze velmi krátké funkce (maximálně několik řádek) kompilátor může vlastní optimalizací rozhodnout, zda funkci deklarovanou jako inline bude skutečně jako inline používat 8
9 Datový typ bool slouží k uchování binární informace pravda / nepravda (v C se k tomuto účelu zpravidla používala proměnná typu int, nabývající hodnot 1/0) bool nabývá dvou možných hodnot: true a false (ty jsou vnitřně opět reprezentovány jako celočíselné proměnné s hodnotami 1 / 0) do proměnné typu bool lze přiřadit výsledky logických výrazů (využívajících relační a logické operátory), lze přiřadit i číselné výrazy, kde 0 znamená false, nenulová hodnota true velikost datového typu bool je obvykle 1 bajt int cislo; bool spravnezadani = false; while (spravnezadani == false) cout << "zadejte hodnotu vetsi nez 10, delitelnou tremi: "; cin >> cislo; spravnezadani = cislo > 10 && cislo % 3 == 0; 9
10 Výčtové typy výčtový typ = datový typ, jež může nabývat jen několika uvedených hodnot vytváříme je klíčovým slovem enum, za kterým následuje název výčtového typu a seznam hodnot ve složených závorkách, vše zakončeno středníkem // definice výčtového typu enum barva cervena, modra, bila, zluta, zelena; // proměnná v programu barva b = modra; smyslem výčtových typů je větší přehlednost programu, je přehlednější používat proměnné s názvem modra nebo bila, než předem dohodnuté kódy barev vnitřně jsou výčtové typy reprezentovány jako celočíselné hodnoty, první z nich má hodnotu 0, každá další pak hodnotu o jedničku vyšší (červená má hodnotu 0, modrá 1,...) vnitřní číslování lze změnit při deklaraci výčtového typu, výčtovým hodnotám lze explicitně přiřadit číselnou hodnotu (opět platí, že následující položka má hodnotu o jedničku vyšší) enum barva cervena, modra = 10, bila, zluta = 20, zelena; cervena má hodnotu 0, modra 10, bila 11, zluta 20, zelena 21 10
11 Správa paměti na haldě Alokace jednoduché proměnné alokaci proměnných na haldě provádíme pomocí klíčového slova new operátor new vrací adresu alokované paměťi, kterou ukládáme do pointeru, práce s pointery je pak naprosto stejná jako v jazyce C int * pint = new int; double * pdouble = new double; pokud operátor new nemůže alokovat paměť, vrací NULL if (pint == NULL) cout << "alokace pameti selhala"; Alokace pole provádíme stejně jako alokaci jednoduché proměnné // pole 10 int na haldě int * pole = new int[10]; // vynulování všech položek for (int i = 0; i < 10; i++) pole[i] = 0; 11
12 Správa paměti na haldě Uvolnění paměti provádíme pomocí operátoru delete // alokace proměnné int na haldě int * pint = new int; // uvolnění paměti delete pint; // je vhodné nastavit pointer na nulu, pokud ho hned nebudeme potřebovat pint = NULL; pokud bylo alokováno pole, uvolnění paměti provedeme pomocí operátoru delete[] (operátor delete následovaný prázdnými hranatými závorkami) // pole 10 int na haldě int * pole = new int[10]; // uvolnění paměti delete[] pole; 12
13 Pointer na pole, pole pointerů čím se liší tato tři pole? int polea[100]; int * poleb = new int[100]; int * polec[100]; for (int i = 0; i < 100; i++) pocec[i] = new int; polea je pole 100 proměnných typu int (polea je tedy pointer na jeho první prvek), pole je alokované na zásobníku, paměť bude uvolněna automaticky pole B je pole 100 proměnných typu int, alokované na haldě, paměť je nutné uvolnit: delete[] pole; polec je pole 100 pointerů (ukazatelů) na typ int, pointery jsou na zásobníku, ale proměnné jsou alokovány na haldě, paměť je nutné uvolnit v cyklu: for (int i = 0; i < 100; i++) delete pocec[i]; 13
14 Předávání parametrů funkcí odkazem jazyk C umožňuje předávat proměnné do funkcí odkazem prostřednictvím pointerů, což lze provádět naprosto stejně i v jazyce C++ void ZamenaPromennych(int * pa, int * pb) int pomocna = *pa; *pa = *pb; *pb = pomocna; práce s pointery je však poněkud nepříjemná, protože dereference mohou být zdrojem chyb, množství dereferencí může vést k nepřehlednému kódu C++ nabízí alternativu - tzv. ODKAZY, které stejně jako pointery umožňují funkcím měnit obsah předávaných proměnných, ale s mnohem jednodušší syntaxí 14
15 Odkazy odkaz (tzv. alias) je jiné jméno pro proměnnou, na kterou ukazuje odkaz definujeme napsáním typu proměnné, operátoru adresy & a jména odkazu zároveň mu ihned při definici musíme dosadit proměnnou (inicializovat ho): int P = 10; // proměnná P int & odkaz = P; // odkaz na proměnnou P význam odkazů je v tom, že kdykoliv se použije odkaz, použije se ve skutečnosti proměnná, na kterou odkazuje odkaz = 15; // totéž jako P = 15 odkaz = jinapromenna; // totéž jako P = jinapromenna, tento řádek tedy // nepřiřadí odkazu novou proměnnou // odkaz nemůže odkazovat na nic jiného než na // proměnnou, kterou byl inicializován // adresa odkazu je stejná jako adresa proměnné, na kterou ukazuje cout << "adresa P: " << &P << endl; cout << "adresa odkazu: " << &odkaz << endl; 15
16 Odkazy jako parametry funkcí odkazy se často používají pro předávání parametrů funkcí umožňují dosáhnout stejného efektu jako pointery (změna proměnné ve funkci se promítne i navenek), ale s jednodušší syntaxí - ve funkci nemusíme provádět dereference void ZamenaPromennych(int & a, int & b) int pomocna = a; a = b; b = pomocna; volání funkce v programu probíhá s použitím proměnných, ne jejich adres ZamenaPromennych(x, y); kompilátor z deklarace funkce ví, že pracuje s odkazy, nepořizuje si tedy lokální kopie parametrů, ale pracuje přímo s předanými proměnnými 16
17 Odkazy jako parametry funkcí odkazy mohou být konstantní (stejně jako pointery), čehož dosáhneme uvedením klíčového slova const void Funkce(const int & x); jakýkoliv pokus o změnu parametru x uvnitř funkce (např. příkaz x++;) povede k chybě v době kompilace pozn. zatímco u pointerů mohlo být slovo const na dvou místech (konstantní pointer nebo konstantní proměnná), v případě odkazů může být jako konstantní deklarována jen proměnná, protože odkaz je konstantní sám o sobě (nemůže odkazovat na nic jiného) odkazy se jako parametry funkcí (stejně jako pointery) používají proto, aby 1. funkce mohla měnit předávané proměnné 2. funkce mohla "vracet" více hodnot najednou (prostřednictvím parametrů, které změní) 3. funkce šetřila čas a paměť tím, že si nebude pořizovat kopie dat (např. velkých struktur) (tady se často používají konstantní odkazy, pokud chceme mít zaručeno, že funkce data nezmění) 17
18 Složené datové typy do jazyka C++ je (stejně jako do C) zabudováno několik standardních typů proměnných (short, int, long, float, double, char...) jazyk C nabízí možnost tvořit nové datové typy - struktury (pomocí klíčového slova struct) typedef struct obdelnik int vyska, sirka; OBDELNIK; Nevýhody struktur struktury a funkce, které s nimi pracují, nejsou spojenými celky struktura obsahuje data, ale sama o sobě "nic neumí" abychom mohli měnit data struktury, musíme zavolat nějakou "cizí" funkci, která má strukturu jako parametr data struktur mohou být funkcemi libovolně měněna, koordinace mnoha funkcí pracujících se strukturou může být složitá, program se obtížně spravuje a rozšiřuje 18
19 Třída třída (class) v sobě sdružuje data popisující nějakou věc, spolu s funkcemi, které tato data spravují a umožňují komunikovat s okolím jasně definovaným a kontrolovaným způsobem data třídy (členská data, členské proměnné) definují, jaké informace jsou ve třídě uloženy bývají (mají být) soukromá (private), tzn. neměla by být přístupná zvenku třídy přístup k datům bývá zajištěn prostřednictvím funkcí třídy funkce třídy (členské funkce, metody) definují, co třída může dělat funkce bývají veřejné (public), tzn. mohou být volány vnějšími částmi programu část funkcí obvykle umožňuje spravovat data třídy, těm se říká přístupové funkce (metody) spojením dat a funkcí do jednoho celku nazýváme ZAPOUZDŘENÍ konkrétní proměnnou nějaké třídy nazýváme OBJEKT 19
20 Deklarace třídy class obdelnik public: // přístupové metody int VratVysku(); void NastavVysku(int v); int VratSirku(); void NastavSirku(int s); Deklarace obsahuje výčet datových položek třídy deklarace funkcí třídy a je zakončena středníkem. // další funkce void Nakresli(); private: int vyska, sirka; ; seznam veřejných položek je uveden klíčovým slovem public, vše dále uvedené (data i funkce) je veřejné, až do klíčového slova private, které deklaruje začátek seznamu soukromých položek pokud typ přístupu není uveden, jsou položky automaticky soukromé funkce mohou být i soukromé, stejně tak data mohou být veřejná, obvykle tomu tak ale není 20
21 Definice funkcí třídy definice píšeme jako kterékoliv jiné definice funkcí, pouze před název funkce píšeme název třídy a dvě dvojtečky // funkce pro zjištění výšky int obdelnik::vratvysku() return vyska; // funkce pro nastavení výšky, obsahuje ochranu proti nastavení záporné hodnoty void obdelnik::nastavvysku(int v) if (v >= 0) vyska = v; // funkce pro kreslení obdléníka void obdelnik::nakresli() for (int i = 0; i < vyska; i++) for (int j = 0; j < sirka; j++) cout << '*'; cout << endl; 21
22 Použití třídy v programu přístup k položkám třídy provádíme pomocí operátoru tečky (jako u struktur) int main() // proměnná typu obdélník s názvem O obdelnik O; // nastavení dat pomocí přístupových metod O.NastavVysku(5); O.NastavSirku(12); // nakreslení vytvořeného obdélníka O.Nakresli(); return 0; soukromá data nelze v programu nastavovat přímo, k tomu jsou určeny přístupové metody, pokud bychom do programu napsali O.sirka = 3;, obdrželi bychom chybu v době kompilace 22
23 Konstantní metody třídy členskou funkci lze deklarovat jako konstantní, což znamená, že funkce nemění členská data provedeme to klíčovým slovem const, které se píše za kulaté závorky seznamu parametrů // funkce pro zjištění hodnoty datové položky sirka // pouze vrací hodnotu členské proměnné, přitom nijak nemění data // měla by tedy být deklarována jako konstantní // deklarace int VratSirku() const; // definice int obdelnik::vratsirku()const return sirka; 23
24 Konstruktor je metoda třídy, která je volaná vždy, když se vytváří objekt třídy pokud vytvoříte objekt příkazem obdelnik O; zavolá se konstruktor třídy obdélník a vyhradí paměť potřebnou pro uložení dat velikost alokace bude rovna součtu velikosti jednotlivých datových položek jednotlivé datové položky budou mít náhodnou hodnotu konstruktor si můžeme napsat vlastní a nastavit tak výchozí hodnoty datových členů konstruktor je metoda třídy, která má stejný název jako třída sama nemá žádnou návratovou hodnotu (ani void) // deklarace konstruktoru (v deklaraci třídy) obdelnik(); // definice konstruktoru obdelnik::obdelnik() vyska = 1; sirka = 1; Nyní budou mít všechny čerstvě vytvořené obdélníky výšku a šířku rovnou 1, dokud jim tato data nezměníme prostřednictvím přístupových metod. 24
25 konstruktor může mít parametry, třída může mít i více konstruktorů (tzv. přetížení - další přednáška) konstruktoru bez parametrů se říká výchozí konstruktor pokud ke své třídě žádný konstruktor nenapíšeme, kompilátor poskytne výchozí konstruktor sám (tento výchozí konstruktor ale datové členy nijak nenastavuje) Destruktor je metoda volaná vždy, když je objekt třídy mazán (opouští svůj obor platnosti, nebo je odstraňován z haldy příkazem delete) destruktor má stejný název jako třída, před názvem se píše vlnovka ~ (tilda), nikdy nemá návratovou hodnotu, ani žádné parametry // deklarace destruktoru Vlastní destruktor má smysl psát u tříd, které ~obdelnik(); pro své datové členy alokují paměť na haldě. // definice destruktoru Úkolem destruktoru je tuto paměť uvolnit obdelnik::~obdelnik() // v tomto destruktoru se nic neděje pokud nenapíšeme vlastní destruktor, kompilátor ho poskytne (tento destruktor ale neuvolní paměť alokovanou na haldě, to musíme udělat ve vlastním destruktoru sami) 25
26 Třída s daty alokovanými na haldě následující příklad ukazuje, jak v konstruktoru alokovat paměť na haldě a v destruktoru tuto paměť zase uvolnit třída čtverec má jediný datový člen délku strany, který je alokován na haldě, třída udržuje pointer na tuto položku // DEKLARACE TŘÍDY class ctverec public: // konstruktor, destruktor ctverec(); ~ctverec(); // další funkce... private: int *strana; ; // DEFINICE KONSTRUKTORU // alokace paměti pro datový člen ctverec::ctverec() strana = new int; // DEFINICE DESTRUKTORU // uvolnění alokované paměti ctverec::ctverec() delete strana 26
27 Inline členské funkce členskou funkci lze deklarovat jako řádkovou, stejně jako jiné funkce // deklarace (uvnitř deklarace třídy) inline int VratVysku() const; // definice inline int obdelnik::vratvysku() const return vyska; funkce bude řádková automaticky, pokud její definici umístíte přímo do deklarace třídy // deklarace funkce spojená s její definicí (uvnitř deklarace třídy) int VratVysku() const return vyska; za definicí funkce není středník příkaz uvnitř složených závorek je ukončen středníkem 27
C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19
C++ přetěžování funkcí a operátorů 1 Přetěžování funkcí jazyk C++ umožňuje napsat více funkcí se stejným názvem, těmto funkcím říkáme přetížené přetížené funkce se musí odlišovat typem nebo počtem parametrů,
VícePokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
VíceÚvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
VíceObsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
VícePokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceVíce o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Vícepřetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního
VíceZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
VíceKonstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
VíceUkazatele, dynamická alokace
Ukazatele, dynamická alokace Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad, Martin Mazanec Karel Richta,
VíceProgramování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
VíceMartin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
VícePointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
VíceMělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
VícePROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
VíceProgramování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
VíceVector datový kontejner v C++.
Vector datový kontejner v C++. Jedná se o datový kontejner z knihovny STL jazyka C++. Vektor je šablona jednorozměrného pole. Na rozdíl od "klasického" pole má vector, mnoho užitečných vlastností a služeb.
VíceJazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
VíceProgramování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
VíceOdvozené a strukturované typy dat
Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu
Více24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceÚvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
VícePokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné
VícePB161 Programování v jazyce C++ Přednáška 10
.. PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 23. listopadu 2015 PB161 přednáška 10: šablony 23. listopadu 2015 1 / 29 K zamyšlení Jaký je rozdíl mezi new int[10] a new int[10]()?
VíceC++ objektově orientovaná nadstavba programovacího jazyka C
C++ objektově orientovaná nadstavba programovacího jazyka C (1. část) Josef Dobeš Katedra radioelektroniky (13137), blok B2, místnost 722 dobes@fel.cvut.cz 5. května 2014 České vysoké učení technické v
Vícepřetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - operátor je speciální
Více8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
Vícefor (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
Více7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
Vícefor (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }
Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný
VíceFunkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
VíceZápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
VíceIUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje
Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti
Více2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
VíceJazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
Jazyk C++ 1 Blok 3 Objektové typy jazyka C++ Studijní cíl Ve třetím bloku bude představen a rozebrán nejdůležitější objektový typ jazyka C++ a to sice třída. Po absolvování bloku bude student schopen navrhovat
VíceProgramovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
VícePB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory
PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových
VíceProgramování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
VícePreprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
VíceLineární spojový seznam (úvod do dynamických datových struktur)
Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky
VíceC++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++
C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka
VíceZáklady programování (IZP)
Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
VíceZákladní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí
02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální
VíceStandardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
VícePříkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
VíceAlgoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VíceSprávné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
VícePokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++ Proudy pro standardní vstup a výstup V jazyce C++ provádíme textový vstup a výstup prostřednictvím tzv. datových proudů Datové
VícePREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
VíceZáklady programování (IZP)
Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden
VíceObjektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
VíceVýrazy, operace, příkazy
Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,
VíceV dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).
Jazyk C++ 1 Blok 1 Úvod do programovacího jazyka C++ Studijní cíl První blok kurzu je věnován úvodu do problematiky programovacího jazyka C++. V bloku budou rozebrány historické souvislosti programovacích
Více2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
VíceVýrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
Více6. Příkazy a řídící struktury v Javě
6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return
VíceProměnná a její uložení v paměti
Proměnná a její uložení v paměti Počítačová paměť - řada buněk uložených za sebou, každá buňka má velikost 1 bajt (byte, B) - buňky jsou očíslovány, tato čísla se nazývají adresy Proměnná - data, se kterými
VícePokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++
Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++ Prostory jmen U programů mohou někdy nastat kolize mezi jmény (tříd, funkcí, globálních proměnných atd.) pokud v různých
VícePráce s binárními soubory. Základy programování 2 Tomáš Kühr
Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba
Více7. Datové typy v Javě
7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů
VíceProgramování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VícePB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20
VíceZáklady jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
VíceUkazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
VíceAbstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceProgramování v jazyce C a C++
Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu
VícePrezentace a vysvětlení programového prostředí NXC
Úvod Další jazyk, který je možno použít pro programování NXT kostky je NXC Not exatly C Na rozdíl od jazyku NXT-G, kde jsme vytvářeli program pomocí grafických prvků přesněji řečeno pomocí programovacích
VíceStrukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr
Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long
Více9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
VícePB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Dynamická alokace Kopírovací konstruktor Přetypování v C++ Nikola Beneš 12. října 2015 PB161 přednáška 4: dynamická alokace, kopírovací konstruktor, casting
VícePole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
VíceStručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787
Stručný obsah První týden 25 den 1 Začínáme 27 den 2 Anatomie programu C++ 43 den 3 Proměnné a konstanty 57 den 4 Výrazy a příkazy 79 den 5 Funkce 107 den 6 Objektově orientované programování 141 den 7
VíceIAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);
Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());
VíceTřídy a struktury v C++
katedra informatiky FEI VŠB-TU Ostrava 7. prosince 2015 Odvozené a strukturované typy dat v C základní datové typy součást normy jazyka, preprocesor použití netypových maker, raději voĺıme konstanty d
VíceZáklady programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
VícePB161 Programování v jazyce C++ Přednáška 8
.. PB161 Programování v jazyce C++ Přednáška 8 Výjimky Správa prostředků (RAII) Nikola Beneš 9. listopadu 2015 PB161 přednáška 8: výjimky, RAII 9. listopadu 2015 1 / 24 . PB161 přednáška 8: výjimky, RAII
VíceZáklady programování (IZP)
Základy programování (IZP) Čtvrté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 4.
VícePŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
VíceVISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
VícePole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0
Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0 int policko[100]; // tj. pole je od 0 do 99!!! policko[5] = 7; // pozor je to 6. prvek s indexem 5
VíceDynamická alokace paměti
Dynamická alokace paměti doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Dynamická alokace
VícePROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK
PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK ČÍSLO OPERAČNÍHO PROGRAMU: CZ.1.07 NÁZEV OPERAČNÍHO PROGRAMU: VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST OPATŘENÍ:
VíceJazyk C++ II. Šablony a implementace
Jazyk C++ II Šablony a implementace AR 2013/2014 Jazyk C++ II Úvod Dědičnost a kompozice nejsou vždy tou správnou odpovědí na požadavky znovupoužitelnosti kódu. Proto máme možnost definování určité třídy
Víceint ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N
Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze
VíceTematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
VíceMnohotvarost (polymorfizmus)
Mnohotvarost (polymorfizmus) TYPY MNOHOTVAROSTI... 2 PŘETĚŽOVÁNÍ METOD, PŘETĚŽOVÁNÍ OPERACÍ... 3 PŘETÍŽENÍ OPERÁTORŮ... 4 ČASTO PŘETĚŽOVANÉ OPERÁTORY... 4 PŘEPISOVÁNÍ... 7 VIRTUÁLNÍ METODY... 10 SEZNAM
VíceProgramování v C++ 1, 6. cvičení
Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
VíceData, výrazy, příkazy
Data, výrazy, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad, Martin Hořeňovský, Aleš Hrabalík
VícePB161 Programování v jazyce C++ Přednáška 10
PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 27. listopadu 2017 PB161 přednáška 10: šablony 27. listopadu 2017 1 / 33 Šablony PB161 přednáška 10: šablony 27. listopadu 2017 2 / 33
VícePolymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
Více