C++ Ohjelmoijan käsikirja. Hakemisto. #ifdef 394 #ifndef 394, 396 ympäristön tuki 396 koodi, monistamisen välttäminen

Koko: px
Aloita esitys sivulta:

Download "C++ Ohjelmoijan käsikirja. Hakemisto. #ifdef 394 #ifndef 394, 396 ympäristön tuki 396 koodi, monistamisen välttäminen"

Transkriptio

1 Hakemisto Symbolit!, looginen NOT 127,129!=, vertailuoperaattori 111, 207 # operaattorin uudelleenmäärittely 534 esikäsittelijän komennot 383 merkkijonon korvaus, esikäsittelijän makrot 391 ## useammat makron parametrit 392 operaattorin uudelleenmäärittely 534 #define, esikäsittelijäkomento 386 katso myös makrot, esikäsittelijän hyödyt 387 const 386 merkkijonon korvaus 391 #else, esikäsittelijäkomento 397 katso myös if-else -lauseet #error, esikäsittelijäkomento 399 #if, esikäsittelijäkomento 393 #endif 393 C++ Ohjelmoijan käsikirja Hakemisto #ifdef 394 #ifndef 394, 396 ympäristön tuki 396 koodi, monistamisen välttäminen 394 lausekkeen vakioarvot 396 ympäristön tuki 396 symbolit 393, 394 esimerkki 394 #include,esikäsittelijäkomento 358, 15, 43, 509, 524 <>, tyhjät merkit 11, 384, 385 luokat, periyttäminen 581 omat lähdetekstitiedostot otsikkotiedostot 384 nimiavaruudet, laajentaminen 367 #line, esikäsittelijäkomento 398 #pragma, esikäsittelijäkomento 399 #undef, esikäsittelijäkomento tunnisteet 387 esimerkki 387 %, jakojäännös 39 & osoite-operaattori 233 bittitason AND 84 viittausparametri 297 viittauksen määrittely 300 &&, looginen AND 127, 128 () funktio-osoittimet 338 vertailuoperaattorit 114 virtafunktiot 764 * osoitus-operaattori 234 osoittimien esittely 232 funktio-osoittimet yhteenlasku 551 merkkijonojen yhdistäminen , lisäysoperaattori 53, 566 jälkiliite 53 etuliite 53, vähennysoperaattori 53, 566 jälkiliite 53 etuliite 53 -> osoitin jäseneen -viittaus 426, 467, 477 epäsuora jäseneen -viittaus 732 ->*, epäsuora osoitin jäseneen

2 910 C++ Ohjelmoijan käsikirja #include, omat lähdetekstitiedostot 385 merkkijonoliteraalit 32., suora jäsenen valinta - operaattori 451 struktuureille 419 unioneille 430.*, suora osoitin jäseneen -operaattori 659.cpp -tiedostot 357, 507, 524.exe, suoritettavat tiedostot 16, 358.h, otsikkotiedostot 357, 369.hpp, otsikkotiedostot 357.obj, objektitiedostot 358 /, kokonaisluvun jakooperaattori 39 \0, nell-merkki, merkkijonot 188 ::, näkyvyysalueoperaattori 104, 361 ; do-while-silmukat 149 for-silmukat 152, 155, 160 funktion prototyyppi 286 <, vertailuoperaattori 111, 113, 535 merkkijonojen vertailu 207 << bittien siirto-operaattori 81, 83 <=, vertailuoperaattori 111 merkkijonojen vertailu 207 <> #include, tyhjät merkit kulmasulkeiden sisällä 11, 384, 385 mallifunktiot 327 <cassert> 407 <cstdlib> 402 <ctime> 402 = funktion parametri, oletusarvo 736 sijoitusoperaattori 49, 544, 545, 548 malliparametri, oletusarvo 736 ==, vertailuoperaattori osoittimet, testaus 238 merkkijonojen vertailu 207 >, vertailuoperaattori 111, 732 merkkijonojen vertailu 207 >=, vertailuoperaattori 111 merkkijonojen vertailu 207 >> bittien siirto-operaattori 81-83, 732?, ehto-operaattori 207 merkkijonojen vertailu 207?:, ehto-operaattori 131 {} taulukot esitely 180 alkiot 180 dynaaminen muistin varaus 264 merkkijonotyypit 204 [alku,loppu), puoliavoin väli 833 ^, bittitason poissulkeva OR 84, 87 poissulkeva OR -tila 87 _, tunnisteessa 12, tunnisteessa 12, 44 cplusplus, standardi esikäsittelijän makro 398 DATE, standardi esikäsittelijän makro 398 FILE, standardi esikäsittelijän makro 398 LINE, standardi esikäsittelijän makro 398 STDC, standardi esikäsittelijän makro 398 TIME, standardi esikäsittelijän makro 398 _X, tunnisteet 44 {} taulukon alustus 184 for-silmukat 152 nimiavaruudet 366, bittitason OR 84-86, looginen OR ~, bittitason komplementti 84 0 puhdas virtuaalifunktio 645 desimaali/oktaalimuoto 38 A abort() 675, 698 abstrakti luokka 646 abstrakti luokka luokan rajapintana 649 epäsuora 649 esimerkki 649 esimerkki 647 muodostinfunktiot 647 accumulate(), algoritmi 847, 881

3 esimerkki 847 alasmuunnos, dynaamiset muunnokset 642 algoritmit, STL 824 accumulate() 847 esimerkki 847 copy() 856 etsintä ja valinta 825 funktio-oliot 825 iteraattorit esimerkki 845 välitys 845 yhdistäminen 839 järjestys 825 kuuluminen 825 muuntaminen 825 numeerinen 825 partial_sum() 847 esimerkki 847 sijoittaminen 825 transform() 825 alkion tutkinta, debuggaus 400 alkiot säiliöt 860 esimerkki 862 vaatimukset 860, 861 taulukot 180 taulukot 180 sizeof() 186 alkuarvolistat 527 muodostinfunktiot 461 allekirjoitus, funktiot 283 uudelleenmäärittely 320 alustus muuttujat 45 silmukat 153 muuttujien näkyvyysalue 155 struktuurit 418 alkuarvolistat 436 unionit 431 alustus 418 AND (&), bittioperaattori 84 animaatio, poissulkeva OR -tila 87 ANSI/ISO-standardi. C++ 10 Standardi Mallikirjasto (STL) 829 ANSIyhteensopimattomat kääntäjät, for-silmukat 155 append() 857 arvoparametrit, funktion parametrit 287 esimerkki 288 osoittimet 289 esimerkki 290 taulukot 291 esimerkki 291 osoitinmuoto 293 arvoparametrit, poikkeukset 689 ASCII-koodi 19 askelpalautin, koodinvaihtomerkki 20 assert()-makro, debuggaus 407 esimerkki 407 assosiatiiviset säiliöt 875 map 824, 875 esimerkki 876 multimap 824 esimerkki 878 multiset 824 set 824 audit() 858 auto, automaattiset muuttujat 100 Hakemisto automaattinen säilytysaika 99 automaattiset muuttujat 100 auto 100 esimerkki 100 automaattiset muuttujat 100 auto 100 esimerkki 100 funktion paluuarvot osoittimet 306 viittaukset 311 paikallinen näkyvyysalue 100 automaattiset oliot 522 avain, peräkkäissäiliöt 875 avainsanat. Katso varatut sanat avaustapa, ios_base 770 average() 834, 836, 839, 845 avoimet funktiot 312, 388 katso myös makrot virtuaalifunktiot 633 B back() 832 back_inserter() 856 bad() 783 bad_alloc, new 699 bad_exception 698 BASIC 8 begin() 828 binäärimuoto 34 bitit 34 negatiiviset arvot 36 kahden komplementti

4 912 C++ Ohjelmoijan käsikirja merkkibitti 36 yhden komplementti 37 binäärioperaattorit 32 looginen AND (&&) 127 looginen OR ( ) 127 pilkku 162 tietotyyppien sekoitus säännöt 72 uudelleenmäärittely 534 katso myös operaattorit, uudelleenmäärittely vertailu 111 binääriset tilailmaisimet. Katso liput binääritila, virtaoperaatiot 756, 784 esimerkki 785 fstream 794 hajasaanti 794 numeerinen data 788 esimerkki 789 read() 788, 789 write() 788, 789 bitit 34 bittioperaattorit 81 AND 84 esimerkki 89 komplementti (~) 84 OR ( ) 84, 86 poissulkeva OR (^) 84, 87 poissulkeva OR-tila 87 siirto-operaattorit 81 << 81, 83 >> 81, 82, 83 merkilliset kokonaisluvut 83 suoritusjärjestys 84 bool 112 boolalpha 114 Boole, George 112 booleanliteraalit 112 break-lauseet 135, 170 esimerkit 135 katso myös switch-lauseet silmukkasesimerkit 171 switch-lauseet 134 switch-lauseet ilman breaklausetta 136 bugit, niiden välttäminen 501, 503 C C 8 suhteet C++-kieleen 8, 9 C++ ANSI-standardi 10 C++:n syöttö/tulostus 755 esimerkkiohjelma 10 hyödyt 9 lauseet 14 merkkikoosta riippuva kieli, C++ 44 ohjelman rakenne 14 suhteet C-kieleen 8, 9 yhteenveto perusteista 27 case-osat, switch-lause 134 break-lauseet 135 esimerkit 134, 135 case-arvot 135 toimenpiteet, jakaminen 136 default-osa 135 esimerkit 134, 135 catch-lohko, poikkeukset 670 ( ) 693 arvoparametrit 689 esimerkki 671, 672, 693 cctype 119 funktiot merkkien muunnokset 120 merkkien testaus 119 katso myös cwctype tolower() 138 cerr 757 ostream 758 char 47, 48, 63 cctype, merkkien testaus 119 esimerkki 63 etumerkillinen arvo 63 etumerkittömät arvot 63 katso myös merkkitaulukot merkit, muunnos kokonaisluvuksi 65 merkkikoon muunnokset, toupper() ja tolower() 120 merkkitaulukot 188 katso myös taulukot moniulotteiset merkkitaulukot 197 osoittimet 260 osoittimet, alustus 239 const char 239 tyhjät merkit 63 cin 11, 56, 757 istream 758 operator>>() 757, 760 class-avainsana 414 clear() 774, 784, 828, 834 clog 757 ostream 758 close() 767, 771 COBOL 7 compare() 210 const 55 const<>cast() 481 esimerkki 480 muuttuvat jäsenmuuttujat 480 #define 386 arvoparametrit, taulukon välitys funktiolle 294 esimerkkiohjelma 55 funktio 504, 509 jäsenfunktiot 478 staattinen 492

5 uudelleenmäärittely 480 jäsenmuuttujat linkitys 359 ulkoiset muuttujat 362 muuttujat 55 oliot 478 operaattorit, uudelleenmäärittely 539 operator[]() 564 operator++(), jälkiliitteellinen muoto 566 poikkeukset catch-lohkot 671 tietotyypit 55 uudelleenmäärittely, funktiot 324 osoitinparametrit 325 viittausparametirt 325 viittausparametri 299 virtuaalifunktiot 632 dynamic_cast<>() 643 const char, charosoittimet 239, 248 const<>cast(), muuttuvat jäsenmuuttujat 481 constructor_tests() 864 continue-lause 167 silmukkaesimerkki 167 copy() 831, 856, 873 count() 878 cout 11, 21, 757 operator<<() 757, 761 osoittimet 241 ostream 758 cstddef 77 cstring 260 osoittimet 260 Ctrl-Z 840 C-tyyliset kommentit. Katso moniriviset kommentit C-tyyliset merkkijonot. Katso taulukot, merkkitaulukot cwctype 122 funktiot, listaus 122 katso myös cctype D debuggaus assert()-makro 407 esimerkki 407 esikääntäjän komennot 400 esimerkki 401 katso myös virheet, virheiden käsittely ja poikkeukset sisäänrakennettu debuggaus 400 arvojen tutkinta 400 keskeytyskohdat 400 suorituksen seuraaminen 400 deque, peräkkäissäiliö 824 desimaalimuoto dec 90 difference() 401 double, liukulukuarvot 57 muuttujat 58 do-while -silmukat 146, 149 ; 149 esimerkki 149 perusmuoto 149 päättymättömät silmukat 171 silmukan ehtolauseke 149 sisäkkäiset, esimerkki 165 dynaaminen linkityskirjasto 18 hyödyt 18 Hakemisto dynaaminen muistinvaraus 246, 261 delete 262 operaattori delete() 573 esimerkki 268 jäsenfunktiot 548 muistin pirstoutuminen 266, 267 muistivuodot 266 funktio paluuarvot 311 new 262 operaattori new() 573 operator=() 545 osoittimet 261 delete 264 muistivuodot 267 new 263 taulukot 264 vapaa muisti 262 käyttöesimerkki 265 muistin pirstoutuminen 267 dynaaminen sidonta 627 perityt jäsefunktiot 627 virtuaalifunktiot 628, 632 dynaaminen säilytysaika 99 dynaaminen tyyppi, osoittimet 623 dynamic_cast<>(), virtuaalifunktiot 642, 644 alasmuunnokset 642 const 643 ristiinmuunnokset 642 E ehtolauseke, forsilmukat 153 ehto-operaattori 913

6 914 C++ Ohjelmoijan käsikirja?, merkkijonojen vertailu 207?: 131 esimerkit 132 ei-staattiset jäsenmuuttujat 522 ei-tyyppiparametrit, malliluokka 709, 724 esimerkki 724, 725, 730 jäsenfunktiot, malliluokat 726 oletusarvot 736 = 736 parametrit 728 osoittimet 729 taulukot 729 eksplisiittinen ilmentäminen, mallit 736 template-avainsana 737 eksplisiittinen muunnos 73 esimerkki 74 static_cast 74 esimerkki 74 eksplisiittiset tyypinmuunnokset 73 const<>cast() 481 dynamic_cast<>() 642, 644 eksplisiittinen tyypinmuunnos 73 esimerkki 74 static_cast 74 katso myös tietotyypit, tietotyyppien sekoitus luetellut tietotyypit 96 staattinen muunnos 639 static_cast<>() 640 vanhantyylinen C++tekniikka 76 eksponentti, liukulukuarvot 56 elmulointi 857 else 123 ehto-operaattori (?:) vs. if-else 132 katso myös if ja if-else riippuvan elsen ongelma 125 empty() 828 end() 828 endl, rivinvaihtomerkki 21, 22 eof() 768, 774, 783, 787 epäsuora jäsenen valintaoperaattori, -> 426 epäsuorat abstraktit luokat 649 esimerkki 649 epäsuorat kantaluokat 579 toistuva perintä 614 erase() 225, 828, 833 erikoistaminen, malliluokat 739 char* 739 osittainen erikoistaminen 739 T* esimerkki 740 täydellinen erikoistaminen 739 erikoistaminen, STL 882 esikääntäjä 383 debuggaus 400 esimerkki 401 makrot avoimet funktiot, vs. 388 merkkijono parametrinä 391 parametrit 392 standardi 398 virhelähteet 389 esikääntäjän komennot # 383 uudelleenmäärittely 534 #define 386 hyödyt 387 merkkijonon korvaus 391 #error 399 #include 11, 384 #line 398 #pragma 399 #undef 387 <> 384 katso myös esikääntäjä loogiset komennot 393 #else 397 #if 393 luettelo 383 esimerkkiohjelmat abstraktit luokat 647 epäsuora periyttäminen 649 algoritmit iteraattorit 845 aritmeettiset operaattorit 39 arvot, vertailu 113 assert()-makro, debuggaus 407 automaattiset muuttujat 100 bittioperaattorit 89 catch-lohkot, ( ) 693 cctype, merkkien muuntaminen 120 char, merkin arvot 63 const, käyttö 55 debuggaus assert()-makro 407 esikääntäjä 401 do-while -silmukat 149 dynaaminen muistinvaraus, merkkijonojen lajittelu 268 ehto-operaattori 132 eksplisiittinen muunnos 74 esikääntäjä, debuggaus 401 fiksut osoittimet, käyttö 572 for-silmukat 153, 505, 511 liukulukuarvot 157 pilkkuoperaattori 162 tieteellinen esitystapa 158 usean muuttujan alustus 160

7 funktiot esittelyt 284 funktion käyttö 281 funktio-osoittimet 339 funktio-osoittimet, välitys 341 jäsenfunktiot 475, 663 mallifunktiot 329, 333, 377 moniulotteiset taulukot, välitys funktiolle 295 nimiavaruudet 373 oletuskopiomuodostimet 469 oletusmuodostinfunktiot 457 operaattorit, uudelleenmäärittely 536 osoittimet, välitys funktiolle 290 paluuarvo, osoittimet 307 parametriluettelo, oletusarvot 304 parametrit, välitys funktiolle 288 perityt jäsenfunktiot 626 rekursiiviset funktiot 344, 346, 349 staattiset muuttujat 313 taulukot, välitys funktiolle 291 uudelleenmäärittely 320 viittausparametrit 298 virtuaalifunktiot 629 ystäväfunktiot 471 if-else -lauseet 123, 506 if-lauseet 115, 166 sisäkkäiset 117 iteraattorit algoritmit, iteraattoreiden välitys 845 istream_iterator 839, 841 keskiarvon laskenta 836, 847 oma, täydellinen iteraattori 849 oman luominen 842 jäsenmuuttujat, osoittimet 659 kantaluokat kantaluokan käsittelijät, poikkeukset 687 muodostinfunktiot 595 osoittimet, olioiden tuhoaminen 653 kokonaislukumuuttujat 45 kopiomuodostin, periytetyssä luokassa 600 linkitetty lista 498 list-säiliö, STL 869 liukulukulaskenta 59 muokkausfunktiot 61 yleiset virheet 61 loogiset operaattorit 129 luetellut tietotyypit 96 luokat abstraktit luokat 647 jäsenet, suojatut 588 jäsenmuuttujat, staattiset 488 kantaluokat 595, 653 kopiomuodostimet 469, 600 käyttö 450 luokan suojatut jäsenet 588 mallit, käyttö 717 muodostinfunktiot 452, 456, 457 oliotaulukot 482 operaattorit, uudelleenmäärittely 536 periytetyt luokat 583 sizeof() 484 staattiset jäsenmuuttujat 488 this 475 tuhoajafunktiot, luokkahierarkia 603 virtuaaliset tuhoajafunktiot 655 ystäväfunktiot 471 malliluokat ei-tyyppiparametrit 730 käyttö 717 sisäkkäiset mallit 745 malliluokat 717 map-säiliö 876 merkkimuunnokset, cctype Hakemisto 120 moniperintä 613 multimap-säiliö 878 muuttujan näkyvyysalue, ehtolausekkeet 139, 140 nimiavaruudet 367 funktiot 373 mallifunktiot 377 using-esittely 373 näkyvyysalueoperaattori, :: 104 oliot osoitin kantaluokkaan, olioiden tuhoaminen 653 virrat 804, 806, 818 virtuaaliset tuhoajafunktiot 655 operaattorit, uudelleenmäärittely 536 fiksut osoittimet, käyttö 572 operator[]() 559 operator+() 553 operator=() 548 operator[]() 559 operator+() 553 operator=() 548 osoittimet char-osoittimet 240 fiksut osoittimet, käyttö 572 funktio-osoittimet 339 funktio-osoittimet, välitys 341 jäsenfunktiot, osoittimet 663 jäsenmuuttujat, osoittimet 659 kantaluokka, olioiden tuhoaminen 653 käyttö 236 olio-osoittimet 427 osoitintaulukot 241 osoitusoperaattori (*) 234 string-tyyppi, lajittelu 244 taulukon nimi osoittimena 254 periytetyt luokat 583 periytyvyys epäsuora

8 916 C++ Ohjelmoijan käsikirja moniperintä 613 perityt jäsenfunktiot 626 poikkeukset, muodostaminen ja käsittely 672 catch-lohkot, ( ) 693 kantaluokan käsittelijä 687 luokan oliot 682 luokkahierarkiat 685 poikkeuksen uudelleenmuodostaminen 690 poikkeusluokat 682 polymorfismi abstraktit luokat 647 epäsuora perintä 649 jäsenfunktiot, osoittimet 663 jäsenmuuttujat, osoittimet 659 perityt jäsenfunktiot 626 virtuaalifunktiot 629 saantitapa periytyvyydessä 586 saantitavan hallintakomennot virtuaalifunktiot 634 sijoitusoperaattori 50 silmukat, sisäkkäiset 164 Standardi mallikirjasto (STL) algoritmit, iteraattoreiden välitys 845 iteraattorit 839, 841, 842,845,847, 849, 856 list-säiliö, käyttö 869 map-säiliö 876 muistinhallinta 858 säiliön alkiot 862 vector 826, 829, 836, 838, 863 string-tyypit etsintä 213 liittäminen 202 merkki, etsintä 216 merkkien käsittely 204 merkkijonon osa, korvaus 223 vertailu 207 struktuurit 419 struktuurin jäsenet 436 struktuurin jäsenfunktiot 423 struktuurin union-jäsenet 433 suojattu jäsen 588 switch-lause 134, 135 case-arvot 136 syöttövirrat, ifstream 768 säiliöt, STL alkiot 862 list-säiliö 869 map 876 multimap 878 vector 826, 829, 836, 838, 863 taulukot alkioiden lukumäärä 187 alustus 185 käyttö 181 luokkaolioiden taulukko 482 merkkijonot, merkkitaulukot 189 moniulotteiset merkkitaulukot 197 vector-säiliö 838 this 475 tiedoston hajasaanti 799 tiedostovirrat tiedostovirrat avaustapa 771 tiedostovirrat ifstream 768 tiedostovirrat osfstream 765 tietotyypit koko 78 maksimi- ja minimiarvot 79 tuhoajafunktiot luokkahierarkia 603 virtuaalinen 655 tulostuksen ulkonäkö 42 tulostusvirrat ofstream 765 tulostusvirrat, ofstream 765 ulkoiset muuttujat, linkitys 363 vapaa muisti, käyttö 265 vector-säiliö, STL 826 keskiarvon laskenta iteraattorien avulla 836 operaatiot 829 taulukon alkioiden keskiarvon laskenta 838 while-silmukat 147, 512 viittaukset, virtuaalifunktion kutsu 637 virrat binäärimuoto 785 binäärisen numeerisen tiedon luku/kirjoitus tiedostoon 789 oliot 765, 804, 806, 818 syöttövirrat, ifstream 768 tiedostovirrat, avaustapa 771 virtuaalifunktiot parametrien oletusarvot 636 saantitavan hallintakomennot 634 viittaukset, virtuaalifunktioiden kutsuminen 637 virtuaaliset tuhoajafunktiot 655 esittely 417 esittelylauseet 14 etuliite, operaattorit 53 suoritusjärjestys 54 etumerkilliset numerot 36 char 63 kokonaislukumuuttujat 48 merkkibitti 36 etumerkittömät kokonaislukumuuttujat 48 U 49 exception, standardi otsikkotiedosto 675 poikkeusluokat 701 hyödyt 701 omien periyttäminen

9 standardiluokista 702 exit() 558, 570, 676, 698 explicit-avainsana 462 extern 106 ulkoiset muuttujat 106 linkitys 360, 362 F fail() 767, 774, 783 Fibonacin sarjat 313, 315 fiksut osoittimet 566 esimerkkiluokka 567 käyttöesimerkki 572 toteutus 570 fill() 91 find() 212 find_first_not_of() 216 find_first_of() 216 find_last_not_of() 216 find_last_of() 216 fixed, modaalinen muokkausfunktio 62 flush() 782 for-silmukat 146, 152 ANSI-yhteensopimattomat kääntäjät 155 esimerkki 153, 505, 511 liukulukuarvot 156 esimerkki 157 muuttujan näkyvyysalue 155 perusmuoto ; 152, 160 {} 152 pilkkuoperaattori 161, 162 esimerkki 161, 162 päättymättömät silmukat 170 esimerkki 170, 174 struktuuri ; 155 tieteellinen esitystapa 158 FORTRAN 7 front() 832 front_inserter() 856 esimerkki 856 fstream 758, 764, 793 binääritila 794 esittely 793 open() 794 virrat, hajasaanti 794 binäärivirrat 794 esimerkki 799 funktio-oliot, STL 825 funktiot 11, 12, 199 abort() 675, 698 accumulate() 881 allekirjoitus, uudelleenmäärittely 320 avoimet funktiot 312, 388 katso myös makrot, esikääntäjä back_inserter() 856 bad() 783 begin() 828 cctype, otsikkotiedosto 119 clear() 774, 784, 828 close() 767, 771 const 504, 509 cwctype 122 dynaaminen muistin varaus 548 empty() 828 end() 828 eof() 768, 774, 783, 787 erase() 225, 828, 833 esittelyt 284 exceptions() 784 exit() 558, 570 fail() 767, 774, 783 fill() 91 find() 212 find_first_not_of() 216 find_first_of() 216 find_last_not_of() 216 Hakemisto find_last_of() 216 flush() 782 front() 832 front_inserter() 856 funktion allekirjoitus 283 funktion kutsut 278 kutsupino 278 staattiset muuttujat, kutsukertojen laskenta 312 funktion määrittely 280 otsikko 280 otsikko, yleinen muoto 280 runko 280, 281 funktion nimet 280 funktion prototyyppi 285 gcount() 781 get() 760, 780, 785, 809 int_tyyppi get() 780 istream& get(char& ch) 780 istream& get(char* ptaul, streamsize n) 780 istream& get(char* ptaul, streamsize n, char erotin) 780 getline() 191, 206, 748, 760 istream& getline(char* ptaul, streamsize n) 780 istream& getline(char* ptaul, streamsize n, char erotin) 780 globaalit operaattorifunktiot 539 binäärioperaattorit 543 const 539 unaariset operaattorit 544 insert() 221, 828, 832, 833 inserter() 856 is digit() 120 isalnum() 120, 122 isalpha() 119, 137 iscontrl() 120 isgraph() 120 islower() 119 isprint() 120 ispunct() 120 isspace() 120 isupper() 119 isxdigit()

10 918 C++ Ohjelmoijan käsikirja jäsenfunktiot 448 const 478 katso myös luokat luokan rajapinta, julkiset jäsenet 464 malliluokat 712 muodostinfunktiot 452 määrittely luokan ulkopuolella 454 oletusarvot 460 operaattoreiden uudelleenmäärittely 534, 543 osoittimet 661 periytyvyys 624 saantifunktiot 467, 480 staattinen 492 this 474, 478 yksityinen 466 kutsuminen 119, 497 kutsupino 278 käyttöesimerkki 281 lauseiden suoritus 11 linkitys 359 linkityksen ratkaisu 360 sisäinen linkitys 360 main() 11, 277, 366, 509, 511, 520, 524, 529 parametrit 301 mallifunktiot 326 <> 327 algoritmit 824 append() 857 class-avainsana 327 esimerkki 329 export 376 ilmentäminen 328 jäsenfunktiot, malliluokat 713 katso myös Standardi mallikirjasto (STL) mallin erikoistaminen 332 mallin uudelleenmäärittely 335 mallit, inline-avainsana 723 nimiavaruudet, mallien määrittely 376 parametrit 335 template-avainsana 327, 332 uudelleenmäärittely 334 malliluokat jäsenmuuttujien määrittely 712 max() 377, 378 muodostinfunktiot 452 katso myös luokat poikkeukset, muodostaminen 698 määrittely 280 otsikko 280 runko 280, 281 nimiavaruudet 372 esimerkki 373 mallifunktion määrittely 376 ohjelman rakenne, funktion rooli 277 oliot 500 open() 771, 774, 794 operaattorit, uudelleenmäärittely 534 const 539 globaalit operaattorifunktiot 539 operator delete() 573 operator new() 573 operator!() 767, 769, 787 operator () 566, 855 int 566 operator() 825 operator-() 855 operator*() 566, 567, 571, 573, 855 operator[] 849, 855 operator[]() 557, 558 operator+() 553, 556 operator++() 566, 844, 846 int 566 operator operator+=() 556 operator<() 534, 536, 541 operator<<() 757, 761, 762 operator=() , 545, 548 operator==() 854 operator->() 566, 567, 571, 573 operator>>() 757, 760 operatorvoid*() 783, 787 osoittimet 337 alustus 338 esimerkki 339 esittely 338 osoitin funktioon -parametri 341 osoitintaulukot 343 otsikko paluuarvo parametriluettelo 283, 302 paluuarvo 280, 283 osoittimet 306 return-lause 284 uudet muuttujat 311 viittaukset 311 void 284 parametriluettelo 280 oletusarvot 302 void 280, 284 parametrit 119, 282 funktio-osoittimet 341 main(), parametrit 301 muunnossäännöt 287 uudelleenmäärittely, oletusarvot 326 välitys funktiolle 287 peek() 780 poikkeukset, muodostaminen funktioissa 695 funktion try-lohko 695 pop() 745, 815, 820 prototyypit 285 ; 286 parametrien nimet 286 using 286 push() 745, 815, 819 push_back() 828, 833 päällekkäiset nimet ja

11 periytyvyys 606 read() 781, 788, 789, 797 rekursio 344 esimerkki 344 rfind() 219 runko 280, 281 muuttujan näkyvyysalue 281 seekg() 779 seekp() 779, 798 sqrt() 776 srand() 402, 511 staattinen, sisäinen linkitys 359, 360 staattiset muuttujat funktion kutsujen laskenta 312 strcat() 260 strlen() 261 strncat() 260 struktuurin jäsenet 423 esittely 424 substr() 206 tellg() 777 tellp() 777 time() 402 tolower() 120, 138 toupper() 120 unget() 780 uudelleenkäyttö 279 uudelleenmäärittely 212, 319 allekirjoitus 320 esimerkki 320 jäsenfunktiot, const 480 mallifunktiot 334 parametrien oletusarvot 326 parametriluettelo 320 virtuaalifunktiot 628, 632 dynaaminen sidonta 628 dynaamiset muunnokset 642 inline-avainsana 633 kantaluokan versio, kutsuminen 639 käyttöesimerkki 628 luokkahierarkiat 633 osoittimet 640 parametrien oletusarvot 636 puhtaan virtuaalifunktiot 645 saantitavan hallintakomento 634 viittaukset kutsussa 637 virtual-avainsana 628, 631 vtable 644 void 280, 284 write() 782, 788, 789 ystäväfunktiot 470 esimerkki 471 operaattoreiden uudelleenmäärittely 539, 540 G gcount() 781 get() 760, 780, 785, 809 int_tyyppi get() 780 istream& get(char& ch) 780 istream& get(char* ptaul, streamsize n) 780 istream& get(char* ptaul, streamsize n, char erotin) 780 getline() 191, 206, 748, 760 istream& getline(char* ptaul, streamsize n) 780 istream& getline(char* ptaul, streamsize n, char erotin) 780 globaali nimiavaruus 362, 366 katso myös globaali näkyvyysalue näkyvyysalueoperaattori, :: 362 unaarinen muoto 362 globaali näkyvyysalue 102, 359 katso myös näkyvyysalue Hakemisto linkitus 359 ulkoiset muuttujat 360, 362, 363 näkyvyysalueoperaattori, :: 104, 361 esimerkki 104 globaalit operaattorifunktiot 539 binäärioperaattorit 543 const 539 unaariset operaattorit 544 good() 783 goto-lause 139 H heap. Katso vapaa muisti heksadesimaalimuoto 20, 34, 35, 37 hex 90 osoittimet 237 hierarkiat, luokka 578 muodostinfunktiot 599 saantitavan määrittely 592 tuhoajafunktiot 602 hyödyt, C++ 9 I if-else -lauseet 122 ehto-operaattori (?:) vs. 132 esimerkki 123 katso myös #else ja if-lauseet muuttujan näkyvyysalue, lauselohkot 139 riippuvan elsen ongelma 125 sisäkkäiset 125 if

12 920 C++ Ohjelmoijan käsikirja if-lauseet 115 esimerkki 115, 116 if-else. Katso if-else -lauseet muuttujan näkyvyysalue, lauselohkot 139 silmukoiden sisällä 165 sisäkkäiset 117 esimerkki 117 if-else 125 try..catch -lohkot 671 katso myös poikkeukset ifstream 758, 764, 767 esimerkki 468 fail() 767 is_open() 767, 775 operator!() 767 tiedoston avaustapa 770 ilmentäminen 448 eksplisiittinen 736 esimerkki 717 implisiittinen 716 jäsenfunktiot 716 implisiittinen ilmentäminen, mallit 716 indeksi string-tyypit 201, 204 [] 204 taulukot 180 alkiot, viittaus 183 moniulotteiset taulukot 192 insert() 221, 828, 832, 833 inserter() 856 int 46, 511 bittioperaattorit 81 siirto-operaattorit 81 operator () 566 operator++() 566 int_tyyppi get() 780 invalid_argument, poikkeus 786 iomanip 43, 62 ios 758 ios::badbit, virran virheet 783 ios::beg, tiedoston avaustapa 779 ios::cur, tiedoston avaustapa 779 ios::end, tiedoston avaustapa 779 ios::failbit, virran virheet 783 ios::failure, virran poikkeukset 784 ios:eofbit, virran virheet 783 ios_base 758 setf() 763 unsetf() 763 virran muokkausfunktiot 763 iostream 11, 524, 758 is_open() 767, 775 isalnum() 120, 122 isalpha() 120, 137 iscontrl() 120 isdigit() 120 isgraph() 120 islower() 120 isprint() 120 ispunct() 120 isspace() 120 istream 758 cin 758 operator>>() 760 istream& get(char& ch) 780 istream& get(char* ptaul, streamsize n) 780 istream& get(char* ptaul, streamsize n, char erotin) 780 istream& getline(char* ptaul, streamsize n) 780 istream& getline(char* ptaul, streamsize n, char erotin) 780 istream_iterator() 839 esimerkki 839, 641 istringstream 801, 802 isupper() 120 isxdigit() 120 iteraattorit, STL 824, 831 algoritmit, iteraattoreiden välitys 845 esimerkki 845 algoritmit, käyttö yhdessä 839 esimerkki 839 back_inserter() 856 esimerkki 841 istream_iterator 839 esimerkki 839, 841 iteraattorityypit 848, 849 iterator_traits 848 kaksisuuntainen 874 keskiarvot, laskenta 835, 836 oma, täydellinen 849 ostream_iterator() 847 ostream_iterator<> 831 reverse_iterator 851 syöttöiteraattorit 855 tulostusiteraattorit 855 lisäysiteraattorit 856 vaatimukset 848 J jakojäännösoperaattori (%)

13 kokonaislukujen jakolasku - operaattori (/) vs. 39 jakojäännösoperaattori, % 39 Java 9 JIT-kääntäjä 9 julkinen, saantitapa 591 julkiset jäsenet, luokat public-avainsana 449 yksityiset luokat 514 jälkiliite, operaattorit 53 suoritusjärjestys 54 järjestyssäiliöt 824 avain 875 deque 824 list 824 front_inserter()-esimerkki 856 vector 824 jäsen 416 jäsenet, luokat 448 alkuarvot 460 julkiset jäsenet public-avainsana 449 jäsenfunktiot 448 const 478, 509 dynaaminen muistinvaraus 548 muodostinfunktiot 452 operaattorien uudelleenmäärittely 534, 543 osoittimet 661 periytyvyys 624 jäsenmuuttujat 448 esimerkki 658, 659 malliluokat 723 osoittimet 657 malliluokat staattiset jäsenet 723 määrittelyn sijoittaminen luokan ulkopuolelle 454 esimerkki 454 static 486 malliluokat 723 Suora jäsenen valinta - operaattori,. 451 yksityiset jäsenet 449, 463 esimerkki 464 käsittely 467 ystäväluokat 474 jäsenet, struktuurit 416 funktiot 423 esittely 424 käsittely 419 osoittimet 425 osoittimet 425 struktuurit 434 unionit 432 jäsenet, unionit 430 jäsenmuuttujat asetus nollaksi 504 ei-staattinen 522 julkinen 449 luokat 448 alkuarvolista, muodostinfunktiot 461 get () 467, 469 katso myös muodostinfunktiot muuttuvat jäsenmuuttujat, const 480 operator 659 osoittimet 657 set () 467, 469 staattinen 487 yksityinen 450 malliluokat 723 staattiset jäsenet 723 palku 505 phanta 505 pnykyinen 505 pseur 505 staattinen 522 struktuurit 416 unionit 430 viittaukset 527 yksityinen 463 K Hakemisto kahden komplementti 37 kahvat, oliot 828 kaksisuuntaiset iteraattorit 874 kaksisuuntaiset operaattorit operator operator 855 kantaluokat 446, 579 esittely using-komennolla 594 kantaluokan käsittelijät, poikkeukset 687 katso myös periytyvyys luokkien periyttäminen 581 malliluokat 750 pinoesimerkki 750 muodostinfunktiot 595 muunto periytetyksi luokaksi 617 osoittimet kantaluokkaan 622 dynaamiset tyypit 623 olioiden tuhoaminen 653, 654 staattiset tyypit 623 saantitapa 590 samannimiset jäsenet 605 tuhoajafunktiot 602 virtuaalifunktiot, kantaluokan version kutsuminen 639 näkyvyysalueoperaattori :: 639 virtuaaliset kantaluokat 616 virtuaaliset tuhoajafunktiot 684 kapselointi 857 tiedon kätkentä 445 kello, koodinvaihtomerkki 20 kentän leveys

14 C++ Ohjelmoijan käsikirja kertomat 161, 344 keskeytyskohdat, debuggaus 400 keskiarvot, laskenta iteraattoreilla 836, 845 kirjastot 9 Standardi mallikirjasto 823 standardikirjasto 9.h 369 koko, taulukot 180 sizeof() 186 kokonaislukuliteraalit 32, 33 arvorajat 33 desimaalimuoto 33 heksadesimaalimuoto 34, 35, 37 negatiiviset arvot 36 oktaalimuoto 38 pilkun käyttö 33 kokonaislukumuuttujat. Katso muuttujat, kokonaislukumuuttujat 45 kokonaisluvun jakooperaattori, / 39 kokonaisluvut 32 aritmeettiset operaatiot 39 kommentit 23 moniriviset 24 sisäkkäiset 24 yksiriviset 23 konekieli 8 koodinvaihtomerkit 19 kopiomuodostimet esimerkki 469 exception-olio 674 malliluokat 713 ei-tyyppiparametrit 727 operator=(), sekaannusvaarat 545 oletuskopiomuodostin periytetyt luokat 599 toteutus 516 tärkeys 515 viittausparametrit 517 yksityinen 522 kutsuminen funktiot 278, 497 staattiset muuttujat 312 kopiomuodostin 516 rekursio 517 tuhoajafunktiot kutsupino 278 Kuutio, luokkaesimerkki 461 kysymysmerkki, koodinvaihtomerkki 20 käsittelijät. Katso catchlohkot käsittely, struktuurin jäsenet 419 käskyt 7 käyttäjän määrittelemät tyypit 44, 414 luokat 448 typedef 98 käyttäjän vastuu olioista 522 käännetyt kielet 8 esikääntäjä 383 Java 9 kääntäminen 8, 10, 17 lähdetekstitiedostot 17 linkkeri 359 lähdetekstitiedostot 358, 359 käännös 16 käännösaikaiset vakiot 95 käännösyksiköt 359 katso myös otsikkotiedostot ja lähdetekstitiedostot linkitys 359 L nimettömät nimiavaruudet 381 L, long 47 laskemissuunta, operaattorit 41 luettelo 107 oikealta laskettava 42 sijoitusoperaattorit 42 suoritusjärjestys 42 unaariset operaattorit 42 vasemmalta laskettava 41 laskesanat() 351 Laskuri-apuluokka, STL 858 laskutoimitukset 32, 39 =, sijoitusoperaattori 49 arvojen muuttaminen 51 useat peräkkäiset sijoitukset 51 esimerkkejä 39 jakojäännösoperaattori 39 katso myös tietotyypit ja muuttujat lisäysoperaattori 53 liukulukuarvot 59, 61 op=, sijoitusoperaattori 51 operaattorien uudelleenmäärittely ja += 556 operator+() 551 osoittimet 251 lisäys 251 taulukot 251 tietotyyppien sekoitus 71 säännöt 72 tulostus 42 vähennysoperaattori 53 lauseet break 170

15 continue 167 esittelyt 14, 44 goto 139 if 115 if-else 122 lauseklohkot 14 lohkot, try catch 670 määrittelyt 14 switch 134 throw 671, 672 katso myös poikkeukset lauselohkot 14 yhdistetty lause 14 lausenimiö, goto 139 length() 200, 206, 748 linkitetyt listat 428 luokat 498 malliluokat, sisäkkäiset 741 oliot 498 esimerkki 506 harjoitus 509 lopun selville saaminen 512 vs. taulukot 499 linkkeri staattiset funktioiden linkitykset 18 suoritettavat tiedostot 359 linkitys 359 tehtävät 18 liput 81 list, järjestyssäiliö 824, 868 esimerkki 869 front_inserter() esimerkki 856 list<> 500 listat, oliot lopun selville saaminen 506 tyhjä 505 lisäysoperaatiot, virrat 761 oliot 803 esimerkki 804 operator<<() 803 lisäysoperaattori, ++ 53, 505 for-silmukkaa varten 154 operator++() 566 while-silmukkaa varten 148 literaalit 32 Boolean 112 katso myös tietotyypit kokonaisluku 32, 33 arvorajoitukset 33 desimaalimuoto 33 heksadesimaalimuoto 34, 35, 37 negatiiviset arvot 36 oktaalimuoto 38 pilkun käyttö 33 liukuluku 32, 57 merkki 63 char 63 merkkijono char-osoittimet, alustus 239 merkkitaulukot 188 osoittimet vakioihin 248, 249 vakio-osoittimet 249, 250 muuttujat vs. 54 taikanumerot 54 liukulukuarvot 32, 56 double 57 eksponentti 56 esimerkit 59, 61 fixed 62 float 57 for-silmukat 156 esimerkki 157 literaalit 57 liukulukuliteraalit 32 long double 57 mantissa 56 tarkkuus 57 muuttujat 58 double 58 yleiset virheet 60 scientific 62 Hakemisto setprecision() 62 vertailuoperaattorit 114 logic_error, poikkeusluokat 702 lohkonäkyvyysalue. Katso paikallinen näkyvyysalue lohkot, lauseet try catch 670 long 47, 511 L 47 long double, liukulukuarvot 57 loogiset esikääntäjän komennot 393 #if 393 loogiset operaattorit 127 AND (&&) 127, 128 esimerkki 129 NOT (!) 127, 129 OR ( ) 127, 128 suoritusjärjestys 131 lopun yli -arvo, vectorsäiliö 832 luku/kirjoitusoperaatiot, virrat 793 fstream 793 binäärimuoto 794 esittely 793 hajasaanti 794 open() 794 luokan tuhoajafunktio 522, 523 luokat 414 abstraktit luokat 646 epäsuora 649 esimerkki 647 luokan standardi rajapinta 649 muodostinfunktiot 647 class-avainsana 449 exception, standardi otsikko- 923

16 924 C++ Ohjelmoijan käsikirja tiedosto exception-luokat 681, 701 exception-luokat, hyödyt 702 exception-luokat, oman määrittely 702 hierarkiat 578 muodostinfunktiot 599 saantitavan hallintakomennot 592 tuhoajafunktiot 602 ilmentäminen 448 julkiset jäsenet luokan rajapintana 464 public-avainsana 449 jäsenet 448 const 478 epäsuora jäsenen valinta - operaattori 467, 477 funktiot, dynaaminen muistinvaraus 548 julkiset jäsenet 464, 449 muodostinfunktiot 452 määritely luokan ulkopuolella 454 oletusalkuarvot 460 osoittimet 657, 661 periytyvyys 624 saantitavan hallintakomennot 450 staattinen 486, 492 suora jäsenen valinta - operaattori 451 this 474, 478 yksityiset jäsenet 449, 463, 466 ystäväluokat 474 kantaluokat 446, 579 kantaluokan käsittelijät, poikkeukset 687 katso myös periytyvyys malliluokat 750 monta kantaluokkaa 607 muodostinfunktiot 595 muunnokset 617 osoittimet kantaluokkaan 622 päällekkäiset jäsenten nimet 605 tuhoajafunktiot 602 virtuaalifunktiot, kantaluokan version kutsuminen 639 virtuaaliset kantaluokat 616 virtuaaliset tuhoajafunktiot 684 Kuutio, esimerkki 461 käyttäjän luomat luokat 530 käyttäjän määrittelemät tyypit, luokat 448 luokkamallit 376, 707 class-avainsana 709 esimerkki 710 esimerkki 717 ilmentäminen 708, 715 kantaluokat 750 katso myös Standardikirjasto (STL) mallifunktiot 326, 376 malliluokan erikoistaminen 739 mallin ID 712 määrittely 708, 709 operator[]() 714 operator=() 712 parametrit 709 sisäkkäiset malliluokat 741 staattiset jäsenet 723 staattiset jäsenet 723 Standardi mallikirjasto 708 säiliöluokat 708 tamplate-avainsana 709 taulukon indeksit 708, 710 virrat 811 ystävät 737 mallit. Katso malliluokat muodostinfunktiot 452 alkuarvolista 461 esimerkki 452 explicit-avainsana 462 kopiomuodostin 469 määrittely 454 oletusarvot 460 oletusmuodostinfunktio 456 parametrit, yksittäinen 461 muunnokset, operaattoreiden uudelleenmäärittely 564 määrittely class-avainsana 449 nimeämiskäytännöt 44 olio-ohjelmointi (OOP) 443, 577 oliot 199 const 478 oliotaulukko 481, 482 sizeof() 484 operaattorin uudelleenmäärittely 533, 534 # 534 ## 534 aritmeettiset operaattorit 551 delete 573 fiksut osoittimet 566 globaalit operaattorifunktiot 539 luokkatyypin muunnokset 564 new 573 operaattoreiden rajoitukset 534 operaattoreiden täysi tuki 540 operaattorifunktiot 543 operator () 566 operator[]() 557 operator+() 551 operator++() 566 operator=() 544 operator-avainsana 534 toteutus 535 ystävät 539, 540 periyttäminen kantaluokasta 579, 581 class-avainsana 449 monta kantaluokkaa 607 muodostinfunktiot 595 muunnokset 617 päällekkäiset jäsenten nimet 605 tuhoajafunktiot 602 virtuaalinen 616

17 polymorfistiset luokat 628 rajapinta abstraktit luokat 649 jäsenfunktiot 446 saantitapa 450 julkinen 449 suojattu 450 yksityinen 449 saantitavan hallinta 513 sisäkkäiset 513, 515 sizeof() 484 esimerkki 484 suojatut jäsenet 588 säiliöluokat 503 malliluokat, säiliöluokan määrittely 708 Standardi mallikirjasto 708 toistuva perintä 614 tuhoajafunktiot osoittimet, olioiden tuhoaminen 653, 654 poikkeukset 699 poikkeukset, abort() 675 poikkeukset, exit() 676 virtuaaliset tuhoajafunktiot 654 using, esimerkki 450 virrat 803 malliluokat 811 operator<<() 803 operator>>() 806 periytetyn luokan oliot 808 virtaluokat 758 yksityiset jäsenet 449 ystäväfunktiot 470 esimerkki 471 ystäväluokat 474, 515 lähdeteksti 7 lähdetekstitiedostot 7, 14 # include 384 otsikkotiedostot 358 katso myös käännösyksiköt käyttö 358 kääntäminen 358 muokkaus 17 esikääntäjän komennot 17 objektitiedostot 358 suoritettavan tiedoston luominen 16 M main() 11, 277, 509, 511, 520, 524, 529 globaali näkyvyysalue 366 parametrit 301 esimerkki 301 makrot 388 assert()-makro, debuggaus 407 esikääntäjä 388 avoimet funktiot vs. 388 katso myös #define merkkijonot parametreinä 391 standardi, luettelo 398 useat parametrit 392 virheiden lähteet 389 mallifunktiot 326 <> 327 algoritmit 824 class-avainsana 327 export 376 ilmentäminen 328 jäsenfunktiot, malliluokka 713 malliluokat 713 mallin erikoistaminen 332 nimiavaruudet, mallin määrittely 376 template-avainsana 327, 332 uudelleenmäärittely 334 mallifunktiot 376 malliluokat 326, 707 class-avainsana 709 esimerkki 710 Hakemisto ilmentäminen 708, 715 jäsenet, staattinen 723 jäsenfunktiot 713 kantaluokat 750 katso myös Standardi mallikirjasto (STL) mallifunktiot 376 malliluokan erikoistaminen 739 mallin ID 712 määrittely 708, 709 operator[]() 714 operator=() 712 sisäkkäiset malliluokat 741 staattiset jäsenet 723 säiliöluokat määrittely 708 taulukon ideksien tarkastus 708, 710 template-avainsana 709 virrat 811 ystävät 737 mallit, Standardi mallikirjasto (STL) 823 mantissa liukulukuarvot 56 tarkkuus 57 map, assosiatiivinen säiliö 824, 858, 875 esimerkki 876 maski 85 maskit, tiedoston avaustapa 770 max() 377, 378 merkkibitti 36 merkkien koodaus 19 koodinvaihtomerkit kontrollimerkit 19 ongelma -merkit merkkijoukot 65 wchar_t 65 symbolit 19 merkkijonoliteraalit 21,

18 926 C++ Ohjelmoijan käsikirja 32 char-osoittimet, alustus 239 merkkitaulukot 188 osoittimet vakioihin 248, 249 vakio-osoittimet 249, 250 merkkijonon osa, merkkijonotyypit 206 compare() 211 substr() 206 merkkijonot esikääntäjän makrot 391 merkkijonovirtaluokat 801, 802 merkkitaulukot 188 null-merkki () 188 C++, merkkikoosta riippuva kieli 44 muuttujien nimet 44 merkkiliteraalit 63 char 63 merkkitaulukot 188 compare() 212 find() 213 katso myös taulukot ja merkkijonot /=, null-merkki 188 moniulotteiset merkkitaulukot 197 esimerkki 197 osoittimet 260 cstring 260 merkkivakiot 19 metodit. Katso funktiot, jäsenfunktiot min() 377, 378, 383 modaaliset muokkausfunktiot 62 boolalpha 114 dec 90 fixed 62 hex 90 luettelo 92 noboolalpha 114 scientific 62 uppercase 169 monimerkityksisyys, jäsenmuuttujat 608 moniperintä 606 moniselitteiset jäsenet 608 moniriviset kommentit 24 sisäkkäiset 24 moniulotteiset taulukot 192 alustus 194 esimerkki 194 nolla-arvot 195 oletuskoko 196 katso myös taulukot merkkitaulukot 197 moniulotteisen taulukon välitys funktiolle 295 esimerkki 295 sizeof() 295 osoittimet, suhteet 257 taulukon nimi osoittimena 257 sizeof() 194 taikanumerot 193 esimerkki 197 muisti dynaaminen muistinvaraus 261 delete 262, 264 esimerkki 268 muistin pirstoutuminen 267 muistivuodot 266, 267 new 262, 263 vapaa muisti 262, 265 funktiot ja ohjelman rakenne 279 kokonaislukumuuttujat 48 struktuurit ja 416 unionit 429 vapautus 522 vuotojen välttäminen 267, 311, 513, 522 muistin pirstoutuminen, dynaaminen muistinvaraus 266, 267 muistin säilytysaika 99 automaattinen 99 dynaaminen 99 staattinen 99, 102 muistinhallinta, STL 857 Papu-luokka 860 vector 863 muistiosoitteet 231 heksadesimaalinen muoto 237 osoittimet 231 multimap, assosiatiivinen säiliö 824, 875 esimerkki 878 multiset, assosiatiivinen säiliö 824, 875 muodostaminen, poikkeukset 670 catch-lohkot 670 esimerkki 671, 672 katso myös poikkeukset throw-lauseke 671 try-lohkot 670 muodostinfunktiot kopiomuodostin exception-olio 674 perytetyissä luokissa 599 luokat 452 abstraktit luokat 647 alkuarvolista 461 explicit-avainsana 462 kopiomuodostin 469, 545 Laatikko(), esimerkki 452 määrittely luokan ulkopuolella 454 oletusarvot 456 parametri, yksittäinen 461 poikkeukset 698 malliluokat, jäsenfunktioiden

19 määrittely luokan ulkopuolella 713 periytetyt luokat 595 muokkausfunktiot 43 modaaliset 62 boolalpha 114 dec 90 fixed 62 hex 90 luettelo 92 noboolalpha 114 scientific 62 uppercase 169 setw() 43 virrat 762 muokkausfunktiot 763 muotoilemattomat operaatiot, virrat 756, 779 syöttövirrat 780 tulostusvirrat 782 muunnokset, tietotyypit 73 eksplisiittiset muunnokset 73 katso myös tietotyyppien sekoitus muunnokset 73 vanhantyylinen C++tekniikka 76 tietotyypit 73 muuttujat 12, 43 =-operaattori 49 alustus 45 automaattinen 100 bool 112 cctype-otsikkotiedosto, funktiot 119 const 55 dynaaminen muistinvaraus 261, 262 esittelyt 44, 47 etuliite, operaattorit 53 extern 360, 362 external 106 funktion paluuarvot 311 globaali näkyvyysalue 102 jälkiliite, operaattorit 53 jäsenmuuttujat 448 kokonaislukumuuttujat 45 linkitys 359 lisäysoperaattori 53 literaalit vs. 54 liukuluku 58 luetellut tietotyypit 93 määrittely 45 nimeämissäännöt 44 näkyvyysalue 99 op=-operaattori 51 osoittimet 231 paikallinen näkyvyysalue 100 sizeof() 77 staattinen 105 säilytysaika 99 vähennysoperaattori 53 muuttuvat jäsenmuuttujat 480 const<>cast() 481 esimerkki 480 myöhäinen sidonta. Katso dynaaminen sidonta N negatiiviset binääriarvot 36 new, muistin varaus 262, 263 bad_alloc, poikkeus 699 muistivuodot 267 operator new() 573 nimet. Katso tunnisteet nimettömät luetellut tyypit 95 Hakemisto nimettömät unionit 432 nimiavaruuden laajennukset 367 esimerkki 378 nimiavaruudet 12, 365 {} 366 esimerkki 367 esittely 366 näkyvyysalue, laajentaminen 367 funktiot 372 esimerkki 373 mallifunktiot, määrittely nimiavaruuteen 376 globaali nimiavaruus 366 main() 366 näkyvyysalueoperaattori, :: 362 muuttujat, määrittelemätön näkyvyysalue 370 nimettömät nimiavaruudet 381 näkyvyysalueen laajentaminen 367 esimerkki 378 näkyvyysalueoperaattori, :: 365 peitenimet 382 sisäkkäiset 382 std, standardikirjasto 25, 365, 524 ulkoinen linkitys 365 using-esittely 371 esimerkki 373 using-komento 366, 370, 375 nimiöt 12 noboolalpha 114 null, listan loppu 506 null-merkki, merkkijonot 188 null-osoittimet 238 numeeriset arvot. Katso tietotyypit 927

20 928 C++ Ohjelmoijan käsikirja numeeriset vakiot 32 kokonaislukuliteraalit 32, 33 arvorajoitukset 33 desimaalimuoto 33 heksadesimaalimuoto 34, 35, 37 negatiiviset arvot 36 oktaalimuoto 38 pilkun käyttö 33 taikanumerot 54 liukulukuliteraalit 32, 57 näkyvyysalue 99 for-silmukat 155 muuttujat 155 globaali 359 näkyvyysalueoperaattori, :: 104 linkitys 359 sisäinen linkitys 359 ulkoinen linkitys 359 lohkonäkyvyysalue 359 muuttujat 99, 100 for-silmukat 155 funktion paluuarvot 306, 311 funktion runko 281 globaali 102 if, if-else ja switch -lauselohkot 139 paikallinen 100 muuttujien esittelyn sijoitus koodiin 102 poikkeukset, virheiden käsittely 674 tunnisteet 359 linkitys 359 näkyvyysalueoperaattori, :: 13, 104 esimerkki 1047 globaalit muuttujat, käsittely 361 std, standardikirjasto 365 virtuaalifunktiot, kantaluokan version kutsuminen 639 O objektitiedostot 16, 358.obj 358 odottamattomat poikkeukset 697 set_unexpected() 698 unexpected() 697 off_type, tiedoston avaustapa 778 ofstream 758, 764, 765 esimerkki 765 tiedoston avaustapa 770 ohjelman rakenne funktiot 277 uudelleenkäyttö 279 lähdetekstitiedostot 14 main() 11 nimiavaruudet 365 otsikkotiedostot 11, 14 ohjelman suoritus. Katsoi suoritus ohjelmien dokumentointi 23 oikealta laskettava 42 oktaaliluvut 20 oktaalimuoto 38 oletusarvoinen suorituksen päättymisfunktio 675 korvaus 675 set_terminate() 675 olioiden ketjutus 428 olioiden monistus 503 AutoKuorma 516 olioiden tuhoaminen 522 olio-ohjelmointi 26, 443 kapselointi 444 tiedon kätkentä 445 luokat 577 periytyvyys 446 epäsuora 649 kantaluokat 446 perityt jäsenfunktiot 624 virtuaaliset tuhoajafunktiot 655 polymorfismi 447, 621 abstraktit luokat 646 dynaaminen tyyppi, osoitin 623 kutsuminen 639 luokat, polymorfismi 628 luokka 649 osoittimet kantaluokkaan 622 osoittimien välissä 640 perityt jäsenfunktiot 624 puhtaat virtuaalifunktiot 645 staattinen tyyppi, osoitin 623 typeid() 656 virtuaalifunktiot 628, 632 oliot automaattinen 522 duplikaatti 503 dynaaminen muistinvaraus 522 iteraattorit 842 jäsenfunktiot rajapintana 446 kahvat 828 kopiointi, kopiomuodostin 469 esimerkki 469 Laatikko 498 linkitetyt listat 428 lisäys listaan 503, 505 luokat 448 const-oliot 478 ilmentäminen 448 taulukot 481, 482 luokkatyypit199 olio-ohjelmointi (OOP) 443 operator <<() 803 esimerkki 804 operator >>() 806

21 esimerkki 806 osoittimet 428 osoittimet kantaluokkaan olioiden tuhoaminen 653, 654 periytetyn luokan oliot 808 esimerkki 808 struktuurit. Katso sturktuurit tila 446 tuhoaminen 522 virrat 803 malliluokat 811 omistaa -testi 580 on eräänlainen -testi 580 OOP. Katso olio-ohjelmointi op=, sijoitusoperaattori 51, 52 open() 771, 774, 794 globaalit operaattorifunktiot 539 binääriset operaattorit 543 const 539 unaariset operaattorit muodot 543 operaattorifunktiot, operaattoreiden uudelleenmäärittely 535 operaattorit!, ifstream 767 aritmeettiset 39 aritmeettiset operaatiot, tietotyyppien sekoitus 71 char 65 esimerkki 39 jakojäännös (%) 39 uudelleenmäärittely 551 binääriset 32 pilkku 162 uudelleenmäärittely 534 vertailuoperaattorit 111 bittitason 81 AND 84 bittien siirto 81 esimerkki 89 komplementti (~) 84 OR ( ) 84, 86 poissulkeva OR (^) 84, 87 suoritusjärjestys 84 const<>cast() 481 delete 262, 264, 267 operator delete() 573 dynamic_cast<>() 642 ehto (?) 207 merkkijono verailu 207 ehto (?:) 131 esimerkki 132 epäsuora jäsenen valintaoperaattori, -> 426, 467, 477 epäsuora jäsenen valintaoperaattori, -> 732 epäsuora osoitin jäseneen - valintaoperaattori, ->* 659 etuliitteellinen muoto, lisäys/ vähennysoperaattori 53 suoritusjärjestys 54 hajasaanti, iteraatorit 855 indeksointi, [] uudelleenmäärittely 557, 563 jakojäännös, % 39 jälkiliitteellinen muoto, lisäys/ vähennysoperaattori 53 suoritusjärjestys 54 kokonaisluvun jakolasku, / 39 käsittely 855 käyttäjän määrittelemät tietotyypit 422 lisäys, etuliitteellinen muoto 53 jälkiliitteellinen muoto 53 operator++() 566 loogiset 127 AND (&&) 127, 128 esimerkki 129 NOT (!) 127, 129 OR ( ) 127, 128 suoritusjärjestys 131 Hakemisto luokat käyttö 534 operaattoreiden uudelleenmäärittely 533, 534 makron parametrit, useat (##) 392 merkkijonojen liittäminen, new 262, 263, 267, 505, 699 operator new() 573 näkyvyysalueoperaattori, :: 104, 361, 365 nimiavaruudet 365 virtuaalifunktiot, kantaluokan version kutsuminen 639 operaattoreiden uudelleenmäärittely aritmeettiset operaattorit 551 delete 573 fiksut osoittimet 566 luokan tyypin muunnokset 564 new 573 operator () 566 operator*() 566, 567 operator[]() 557 operator+() 551 operator++() 566 operator=() 544 operator->() 566, 567 operator-avainsana 534 operandit 32 osoiteoperaattori, & 233 osoitus, * 234 reinterpret<>cast() 272 siirto-operaattorit, >> 732 sijoitus, = 49, 73 = 49 eri tietotyypit 73 esimerkki 50 op= 51, 52 peräkkäiset sijoitukset 51 tietotyyppien sekoitus 73 uudelleenmäärittely 544, 929

22 930 C++ Ohjelmoijan käsikirja 545, 548 static_cast<>() 640 suora jäsenen valinta,. 200, 451 struktuurit 419 unionit 430 suora osoitin jäseneen - valintaoperaattori,.* 659 suoritusjärjestys 41, 53 luettelo 107 typeid() 656, 688 unaarinen 32, 53 lisäys 53 osoite 233 sizeof() 77 uudelleenmäärittely 544 vähennys 53 uudelleenmäärittely 534 vertailu 111 == 112 esimerkki 112, 113 liukulukuarvot 114 luettelo 111 merkkijono verailu 207 operaattoreiden uudelleenmäärittely, esimerkki 535 sulkeet 114 suoritusjärjestys 114 vähennys, 53 etuliitteellinen muoto 53 jälkiliitteellinen muoto 53 operator () 566 operandit 32 katso myös operaatorit tietotyyppien sekoitus 71 säännöt 72 operator delete() 573 operator new() 573 operator!() 767, 769, 787 operator!=() 844 operator () 566, 855 operator () 566, 855 operator() 825 operator-() 855 operator*() 566, 567, 571, 573, 855 operator[] 849, 855 operator[]() 557, 558 const 564 esimerkki 558 operator+() 553, 556 operator++() 566, 844, 846 operator++() 566, 844, 846 operator operator+=() 556 operator<() 534, 536, 541 operator<<() 757, 761, 762 operator=() , 545, 548 operator==() 854 operator->() 566, 567, 571, 573 operator>>() 757, 760 operatorvoid*() 783, 787 OR ( ), bittioperaattori 84, 86 OR (poissulkeva), bittioperaattori 84, 87 poissulkeva OR-tila 87 osittainen erikoistaminen, malliluokat 739 osoitteet, muisti 231 heksadesimaalinen esitystapa 237 osoittimet 231 osoitteet, talletus 503 osoittimet 231, 497 alustus 238 == 238 char-osoittimet 239 esimerkki 238 muuttujalla alustaminen 238 null-osoittimet 238 taulukot 250 aritmeettiset operaatiot 251 lisäys 251 osoitus 252 vähennys 253 char-osoittimet esimerkki 240 cout 241 dynaaminen muistinvaraus 261 delete 262, 264 muistin pirstoutuminen 267 muistivuodot 267 new 262, 263 vapaa muisti 262 esimerkki 234, 236 esittely 232 * 232 fiksut osoittimet 566 esimerkkiluokka 567 käyttöesimerkki 572 toteutus 570 funktion paluuarvot, osoitin 306 esimerkki 307 muuttujan näkyvyysalue 306 funktio-osoittimet 337 alustus 338 esimerkki 339 esittely 338 osoitintaulukot 343 funktiot, osoittimen välitys 289 esimerkki 290 heksadesimaalimuoto 237 hyödyt 235, 502, 529 jäsenet 661 esimerkki 663

23 esittely 662 funktiot, osoittimien välitys 665 typedef 662 jäsenmuuttujat 657 esimerkki 659 osoittimet 498 osoittimet, esimerkki 658 lisäys 505 malliluokat 729 ei-tyyppiparametrit, osoittimet 729 muistiosoitteet 231 osoiteoperaattori, & 233 osoitusoperaattori (*) 234 esimerkki 234 p, etuliite 233 polymorfismi osoitin kantaluokkaan 622 reinterpret_cast<>() 272 string-tyyppi, lajittelu 244 esimerkki 244 struktuurin jäsenet, osoittimet 425 suora jäsenen valintaoperaattori,. 467, 477 taulukot esimerkki 241 esittely 241 hyödyt 243 muistinvaraus 243 taulukot, välitys funktiolle 293 const 294 moniulotteiset taulukot 295 this, jäsenfunktiot 474, 478 uudelleenmäärittely, funktiot 322 const-osoittimet 325 vakio-osoittimet 248, 249 viittausparametrit, viittaukset vs. osoittimet 300, 301 virtuaalifunktiot dynaamiset muunnokset 642 muunto osoittimien välillä 640 vtable 644 osoittimet 425 osoitusoperaattori, * 234 osoitusoperaattori. Katso operator[]() ostream 758 cerr 758 clog 758 cout 758 operator<<() 761 ostream_iterator<> 831 ostringstream 801, 802 otsikko, funktiot 280 funktion nimi 280 paluuarvo 280, 283 osoittimet 306 return-lause 284 uudetn muuttujat 311 viittaukset 311 void 284 parametriluettelo 280 oletusarvot 302 yleinen muoto 280 otsikkotiedostot 11, 14 #include-komento 384, 509, 524.h 369.hpp 357 cctype 119 funktiot, luettelo 119 tolower() 138 cstring 260 osoittimet 260 cwctype 122 funktiot, luettelo 122 iostream 524 katso myös käännösyksiköt käyttö 358 Laatikko.h 506, 523 Lista.h 507, 518, 524 lähdetekstitiedostot 358.h 369 Hakemisto Standardi mallikirjasto (STL) 825 otsikkotiedotot, luettelo 825 out_of_range, poikkeus 714, 721, 732 P p, osoittimen etuliite 233 paikallinen näkyvyysalue 100, 359 katso myös näkyvyysalue paluuarvo, funktiot 280, 283 osoittimet 306 esimerkki 307 muuttujan näkyvyysalue 306 return-lause 284 uudet muuttujat 311 muistivuodot 311 viittaukset 311 muuttujan näkyvyysalue 311 void 284 Papu-luokka, STL 860 operaattorit 860 parametriluettelo, funktiot 280 oletusarvot 302 esimerkki 302 useat oletusarvot 303, 306 uudelleenmäärittely 320 osoitinparametrit 322 vakioparametrit 324 viittausparametrit 322 void 280, 284 parametriluettelo, malliluokat 709 ei-tyyppiparametrit 709, 724 esimerkki 724, 725, 730 jäsenfunktiot, mallit

INSIDE C++ Ohjelmoijan käsikirja. Ivor Horton WROX PRESS

INSIDE C++ Ohjelmoijan käsikirja. Ivor Horton WROX PRESS INSIDE C++ Ohjelmoijan käsikirja Ivor Horton WROX PRESS C++ Ohjelmoijan käsikirja Kirjoittanut Kääntäjä Kansi Kustantaja Ivor Horton Jouni Laaksonen Frank Chaumont IT Press PL 25 00511 HELSINKI Sähköpostiosoite

Lisätiedot

Ohjelman virheet ja poikkeusten käsittely

Ohjelman virheet ja poikkeusten käsittely Ohjelman virheet ja poikkeusten käsittely 17 Ohjelman virheet ja poikkeusten käsittely Poikkeukset ovat tapa ilmoittaa virheistä ja odottamattomista tilanteista C++-ohjelmassasi. Poikkeusten käyttö virheiden

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

Luokan operaatiot. Osoittimet ja viittaukset luokan olioihin

Luokan operaatiot. Osoittimet ja viittaukset luokan olioihin Luokan operaatiot 13 Luokan operaatiot Luokkien olioiden luomiseen ja tuhoamiseen liittyy monia hienouksia, joista sinun tulee olla selvillä, jotta luokkiesi olioiden operaatiot toimivat turvallisesti

Lisätiedot

Mallit standardi mallikirjasto parametroitu tyyppi

Mallit standardi mallikirjasto parametroitu tyyppi Mallit 18 Mallit Malli on tehokas mekanismi uusien luokkien generoimiseksi automaattisesti. Standardikirjaston suuri osa, standardi mallikirjasto, rakentuu kokonaan mallien määrittelymahdollisuuden ympärille,

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Virtuaalifunktiot ja polymorfismi

Virtuaalifunktiot ja polymorfismi Virtuaalifunktiot ja polymorfismi 16 Virtuaalifunktiot ja polymorfismi Polymorfismi on niin tehokas olio-ohjelmoinnin ominaisuus, että tulet varmastikin käyttämään sitä lähes kaikissa C++-ohjelmissasi.

Lisätiedot

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (

Lisätiedot

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi 1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,

Lisätiedot

13 Operaattoreiden ylimäärittelyjä

13 Operaattoreiden ylimäärittelyjä 248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä 812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus

Lisätiedot

Operaattoreiden uudelleenmäärittely

Operaattoreiden uudelleenmäärittely Operaattoreiden uudelleenmäärittely 14 Operaattoreiden uudelleenmäärittely Tässä luvussa käsittelemme, kuinka voit lisätä toiminnallisuutta luokkiisi, jotta ne toimivat enemmän C++:n perustietotyyppien

Lisätiedot

\+jokin merkki tarkoittaa erikoismerkkiä; \n = uusi rivi.

\+jokin merkki tarkoittaa erikoismerkkiä; \n = uusi rivi. 1. Johdanto 1.1 Yleistä Suurten ohjelmien organisointi vaikeaa C:ssä. 1980 Stroustrup lisäsi C:hen olio-ohjelmoinnin (OOP = Object Oriented Programming). C C++: C-ohjelma on (muutamia poikkeuksia lukuunottamatta)

Lisätiedot

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

Lisätiedot

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl; Demo 6 vastauksia 1. tehtävä #ifndef #define D6T1 H D6T1 H #include using std::ostream; using std::cout; using std::endl; #include using std::string; 10 template class

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Periytyminen. Luokat ja olio-ohjelmointi

Periytyminen. Luokat ja olio-ohjelmointi Periytyminen 15 Periytyminen Tässä luvussa käsittelemme aihetta, joka on olio-ohjelmoinnin kaikkein tärkein osa - periytyvyys. Periytyvyyden avulla voimme luoda uusia luokkia uudelleenkäyttämällä ja laajentamalla

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

TTY Ohjelmointi I & II C++-kirjastoreferenssi versio 2.2

TTY Ohjelmointi I & II C++-kirjastoreferenssi versio 2.2 TTY Ohjelmointi I & II C++-kirjastoreferenssi versio 2.2 Copyright 2002 2009 Ari Suntioinen aps@cs.tut.fi #include int EXIT_SUCCESS main-funktion paluuarvo int EXIT_FAILURE ok- ja virhetilanteessa.

Lisätiedot

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: 1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Osoittimet. Mikä on osoitin?

Osoittimet. Mikä on osoitin? Osoittimet 7 Osoittimet On aika siirtyä käsittelemään osoittimia, C++:lle elintärkeätä ominaisuutta. Osoittimet ovat tärkeitä, koska ne luovat perustan muistin dynaamiselle varaukselle ja käytölle. Ne

Lisätiedot

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU Ohjelmointi 2 Jussi Pohjolainen TAMK» Tieto- ja viestintäteknologia Tietotyypeistä C++ - kielessä useita tietotyyppejä Kirjaimet: char, wchar_t Kokonaisluvut: short, int, long Liukuluvut: float, double

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Esimerkki luokkahierarkiasta: C++-kielen IOstream-kirjasto

Esimerkki luokkahierarkiasta: C++-kielen IOstream-kirjasto Esimerkki luokkahierarkiasta: C++-kielen IOstream-kirjasto Tässä materiaalissa tutustutaan tarkemmin C++:n luokkahierarkiaan. Koska kyseessä on oliopohjainen kieli, C++:n luokat on järjestetty hierarkisesti

Lisätiedot

Geneeriset luokat. C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet. Geneerisen luokan käyttö.

Geneeriset luokat. C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet. Geneerisen luokan käyttö. Geneeriset luokat C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet Geneerinen luokka tarkoittaa parametroitua luokkamallia, jonka avulla voidaan muodostaa useita,

Lisätiedot

Valinnat ja päätökset

Valinnat ja päätökset Valinnat ja päätökset 4 Valinnat ja päätökset Päätöksenteko on erittäin tärkeässä asemassa kaikissa ohjelmointikielissä. Jos ohjelman lauseiden suoritusjärjestystä ei voitaisi muuttaa tietojen vertailun

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Standardi mallikirjasto

Standardi mallikirjasto Standardi mallikirjasto 20 Standardi mallikirjasto Kuten jo tiedätkin C++ sisältää laajan standardikirjaston, joka yksinkertaistaa monia ohjelmointitehtäviä. Tähän saakka näkemäsi lisäksi tämä kirjasto

Lisätiedot

C++11 lambdat: [](){} Matti Rintala

C++11 lambdat: [](){} Matti Rintala C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Perustietotyypit ja laskutoimitukset

Perustietotyypit ja laskutoimitukset Perustietotyypit ja laskutoimitukset 2 Perustietotyypit ja laskutoimitukset Tässä luvussa käsittelemme C++:n perustietotyyppejä, varsinkin sellaisia kuin sinä mitä todennäköisemmin tulet käyttämään omissa

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmointi 1 Taulukot ja merkkijonot Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko

Lisätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. V Geneerisyys

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. V Geneerisyys 812347A Olio-ohjelmointi, 2015 syksy 2. vsk V Geneerisyys Sisältö 1. Johdanto geneerisyyteen 2. Geneeriset funktiot 3. Geneeriset luokat 4. Standard Template Library (STL) 5. IOStream-kirjasto 812347A

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

Tässä dokumentissa kuvataan Keimo-projektissa sovellettavia ohjelmointikäytäntöjä. Päivämäärä 10.11.2002 Projektiryhmä Keimo keimo-dev@list.hut.

Tässä dokumentissa kuvataan Keimo-projektissa sovellettavia ohjelmointikäytäntöjä. Päivämäärä 10.11.2002 Projektiryhmä Keimo keimo-dev@list.hut. T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tässä dokumentissa kuvataan Keimo-projektissa sovellettavia ohjelmointikäytäntöjä. Päivämäärä 10.11.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi Kirjoittajat

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19 Ohjelmointikieli TIE-20306 Principles of Programming Languages Syksy 2017 Ryhmä 19 Juho Kärnä Ville Mäntysaari 1. Johdanto D on yleiskäyttöinen, strukturoitu, staattisesti tyypitetty, käännettävä ohjelmointikieli

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Lisää perustietotyypeistä

Lisää perustietotyypeistä Perustietotyypit ja laskutoimitukset 3 Lisää perustietotyypeistä Tässä luvussa käsittelemme lisää jo edellisessä luvussa käsittelemiämme perustietotyyppejä. Näemme, kuinka eri tyyppiset muuttujat vaikuttavat

Lisätiedot

Olio-ohjelmointi Poikkeusten käsittelystä. 1. Johdanto

Olio-ohjelmointi Poikkeusten käsittelystä. 1. Johdanto Olio-ohjelmointi Poikkeusten käsittelystä Virheiden käsittely liittyy olennaisesti kaikkeen ohjelmointiin. Monissa sovelluksissa virhetilanteiden käsittelemiseen liittyvää koodia on merkittävä osuus koko

Lisätiedot

Ohjelmointi funktioiden avulla

Ohjelmointi funktioiden avulla Ohjelmointi funktioiden avulla 8 Ohjelmointi funktioiden avulla Ohjelman jakaminen hallittaviin osiin on idea, joka on perustana kaikille ohjelmointikielille. Funktio on kaikkien C++-ohjelmien perusosa.

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu

Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu C-kurssi Viikko 1: tyypit, rakenteet, makrot Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostus Makrot

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. I Johdanto ohjelmointiin C++kielellä

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. I Johdanto ohjelmointiin C++kielellä 812347A Olio-ohjelmointi, 2015 syksy 2. vsk I Johdanto ohjelmointiin C++kielellä Sisältö 1. C++-kielen lyhyt historia 2. C++-kielen ominaisuuksia tiivistettynä 3. Peruskäsitteitä 4. C++-ohjelman looginen

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Tehtävä 1. TL5302 Olio-ohjelmointi Koe Malliratkaisuja. Tässä sekä a)- että b)-kohdan toimiva ratkaisu:

Tehtävä 1. TL5302 Olio-ohjelmointi Koe Malliratkaisuja. Tässä sekä a)- että b)-kohdan toimiva ratkaisu: TL5302 Olio-ohjelmointi Koe 19.4.2005 Malliratkaisuja Tehtävä 1 Tässä sekä a)- että b)-kohdan toimiva ratkaisu: #include using namespace std; int main() int taul[5]=1,2,3,4,5; int *p,&r=taul[0];

Lisätiedot

Loppukurssin järjestelyt C:n edistyneet piirteet

Loppukurssin järjestelyt C:n edistyneet piirteet C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Luokat. Luokat ja olio-ohjelmointi

Luokat. Luokat ja olio-ohjelmointi Luokat 12 Luokat Tässä luvussa laajennamme edellisessä luvussa käsittelemäämme struktuurityyppiä ja siirrymme yhteen C++-ohjelmoijan kaikkein tärkeimmistä välineistä: luokkiin. Käsittelemme myöskin joitakin

Lisätiedot

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet Metodit Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin return; -lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua Metodi voi palauttaa alkeistyypin tai olion Tällöin

Lisätiedot

STL:n uudistukset. Seppo Koivisto TTY Ohjelmistotekniikka

STL:n uudistukset. Seppo Koivisto TTY Ohjelmistotekniikka STL:n uudistukset Seppo Koivisto TTY Ohjelmistotekniikka 2012-05-04 Sisältö 1 Muutokset säiliöihin ja uudet säiliötyypit 2 3 4 5 STL:n säiliöt Viitteet ja osoittimet ovat muuttuneet: Allocator::reference

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Olio-ohjelmointi Geneerisyys. 1. Johdanto

Olio-ohjelmointi Geneerisyys. 1. Johdanto Olio-ohjelmointi Geneerisyys Aiemmin käsiteltiin kolme monimuotoisuuden muotoa. Tässä osassa tutustutaan niistä neljänteen geneerisyyteen. Esitys perustuu pääosin teoksen [Bud] lukuun 18. Java-kielen geneerisyyden

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

Table of Contents. T740103 Olio-ohjelmointi C/C++ perusteita Jukka Jauhiainen OAMK Tekniikan yksikkö 2010, 2011

Table of Contents. T740103 Olio-ohjelmointi C/C++ perusteita Jukka Jauhiainen OAMK Tekniikan yksikkö 2010, 2011 Tämän materiaalin lähteenä on käytetty osoitteesta http://www.cplusplus.com/doc/tutorial löytyvää C+ + Language Tutorial. Tämän osan tarkoituksena on pääasiassa kerrata C-kielestä tuttuja perusasioita

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne

Lisätiedot

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen D-OHJELMOINTIKIELI AA-kerho, 33 Antti Uusimäki Arto Savolainen 2 D-OHJELMOINTIKIELI D-kielen historia alkaa vuodesta 1999, kun Walter Bright aloitti uuden ohjelmointikielen kehittämisen. Ensimmäinen versio

Lisätiedot

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä.

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. 3. Funktiot Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. Modulaarisuudella pyritään parantamaan ohjelman ymmärrettävyyttä, testattavuutta sekä

Lisätiedot

Loppukurssin järjestelyt

Loppukurssin järjestelyt C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen

Lisätiedot

Syöttö- ja tulostusoperaatiot

Syöttö- ja tulostusoperaatiot Syöttö- ja tulostusoperaatiot 19 Syöttö- ja tulostusoperaatiot C++-kieli ei itse sisällä mitään määräyksiä syötölle ja tulostukselle. Tämän luvun aiheena on standardikirjaston syöttö- ja tulostusmahdollisuudet,

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

++ 153, 759 += 98 = 102, 751 == 102 -> 756 ->* 655 >> 165, 1063? 133 ^ 165 166 147 ~165

++ 153, 759 += 98 = 102, 751 == 102 -> 756 ->* 655 >> 165, 1063? 133 ^ 165 166 147 ~165 Hakemisto 1199 Symbols 165, 1063! 147 -- 153, 759 #endif-direktiivi 14 #ifdef-direktiivi 14 #ifndef-direktiivi 14 #include 9 #include-direktiivi 17 & 165 && 143, 147 &&-operaattori 143 ( ) 755 (...) 354,

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot