Objektno orijentisano programiranje u C++

  • View
    169

  • Download
    29

Embed Size (px)

DESCRIPTION

programski jezik, Objektno Orijentisano Programiranje, OOP u C++, C++, Programski jezik C++, osnove programiranja, singidunum univerzitet, softverski inzinjering

Text of Objektno orijentisano programiranje u C++

  • Uni verzitet S ingidunum

    OBJEKTNO ORIJENTISANOPROGRAMIRANJE: C++

    Irina Branovi

  • OBJEKTNO ORJENTISANO PROGRAMIRANJE C++

  • OBJEKTNO ORJENTISANO PROGRAMIRANJE C++

    Autor:

    Recenzenti:~

    Izdava:

    Za izdavaa:

    Lektor:

    Tehnika obrada:

    Dizajn korica:

    Godina izdanja:

    Tira:

    tampa:

  • Sadraj

    Predgovor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Glava 1. Uvod u jezik C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.1. Istorijat jezika C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. Standardizacija jezika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3. Objektno orijentisane osobine jezika C++ . . . . . . . . . . . . . . . . . . . . . . . 111.4. Unoenje, prevodenje i izvravanje C++ programa . . . . . . . . . . . . . . . . . . 13

    1.4.1. Integrisana razvojna okruenja za programiranje (IDE) . . . . . . . . . . 151.4.2. Prevodenje i interpretiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4.3. Konzolni i gracki programi . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    1.5. Prvi C++ program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    Glava 2. Tipovi podataka i operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    2.1. Identikatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2. Specijalni znakovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3. Ugradeni tipovi podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.3.1. Promenljive i konstante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.3.2. Celobrojni podaci (int) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.3.3. Znakovni podaci (char) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.4. Brojevi u pokretnom zarezu (oat, double) . . . . . . . . . . . . . . . . . . 302.3.5. Logicki tip (bool) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    2.4. Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4.1. Operator dodele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4.2. Aritmeticki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.3. Relacioni i logicki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.4.4. Denisanje sinonima za tipove podataka: typedef . . . . . . . . . . . . . 352.4.5. Operator sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.4.6. Operator nabrajanja (,) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.4.7. Osnovne operacije ulaza i izlaza . . . . . . . . . . . . . . . . . . . . . . . . 372.4.8. Prioritet i asocijativnost operatora . . . . . . . . . . . . . . . . . . . . . . . 37

    2.5. Konverzija tipova (cast) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.6. Simbolicke konstante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Glava 3. Naredbe za kontrolu toka programa . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    3.1. Blokovi naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

  • 4 Sadraj

    3.2. Naredba if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.2.1. Ugnjedene naredbe if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.2. If else if lestvica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.3. Uslovni izraz (operator ? :) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    3.3. Naredba switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.4. Petlja for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.5. Petlja while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.6. Petlja do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.7. Naredbe break i continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.8. Ugnjedene petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.9. Naredba bezuslovnog skoka (goto) . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    Glava 4. Nizovi, stringovi i pokazivaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    4.1. Jednodimenzionalni nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.2. Viedimenzionalni nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3. Stringovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    4.3.1. Ucitavanje stringa sa tastature . . . . . . . . . . . . . . . . . . . . . . . . . 714.3.2. Funkcije C++ biblioteke za stringove . . . . . . . . . . . . . . . . . . . . . 72

    4.4. Inicijalizacija nizova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.4.1. Inicijalizacija nizova bez dimenzija . . . . . . . . . . . . . . . . . . . . . . 74

    4.5. Nizovi stringova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.6. Pokazivaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    4.6.1. Pokazivac NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774.6.2. Operacije sa pokazivacima . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.6.3. Osnovni tip pokazivaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.6.4. Dodela vrednosti promenljivoj preko pokazivaca . . . . . . . . . . . . . . 804.6.5. Pokazivacka aritmetika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.6.6. Pokazivaci i nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    4.7. Dinamicka alokacija memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    Glava 5. Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    5.1. Argumenti funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925.2. Povratak iz funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    5.2.1. Funkcija exit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955.3. Doseg promenljivih (scope) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

    5.3.1. Lokalni doseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965.3.2. Globalni doseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985.3.3. Staticke promenljive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    5.4. Imenici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.5. Nizovi i pokazivaci kao argumenti funkcija . . . . . . . . . . . . . . . . . . . . . . . 1025.6. Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    5.6.1. Reference u funkcijama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.6.2. Samostalne reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.6.3. Pokazivaci i reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.6.4. Reference kao povratni tip funkcija . . . . . . . . . . . . . . . . . . . . . . 107

  • Sadraj 5

    5.6.5. Koricenje modikatora const u funkcijama . . . . . . . . . . . . . . . . . 1085.7. Prototipovi funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.8. Preklapanje funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    5.8.1. Podrazumevani argumenti funkcija . . . . . . . . . . . . . . . . . . . . . . 1115.9. Rekurzivne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    Glava 6. Klase i objekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    6.1. Kako i zato je nastalo objektno orijentisano programiranje? . . . . . . . . . . . . 1196.2. Pojam klase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206.3. Kontrola pristupa clanovima klase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246.4. Inline funkcije clanice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256.5. Konstruktori i destruktori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    6.5.1. Kada se izvravaju konstruktori i destruktori? . . . . . . . . . . . . . . . . 1276.5.2. Konstruktori sa parametrima . . . . . . . . . . . . . . . . . . . . . . . . . . 1286.5.3. Preklapanje konstruktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.5.4. Podrazumevani (default) konstruktori . . . . . . . . . . . . . . . . . . . . 131

    6.6. Zajednicki clanovi klasa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.7. Prosledivanje objekata funkciji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135