Thuis
Contacten

    Hoofdpagina


Programmeren in C++ voor beginners

Dovnload 5.04 Mb.

Programmeren in C++ voor beginners



Pagina1/49
Datum25.10.2017
Grootte5.04 Mb.

Dovnload 5.04 Mb.
  1   2   3   4   5   6   7   8   9   ...   49

Programmeren in C++ voor beginners



Richèl Bilderbeek





Copyright (C) 2007 en 2008 Richèl Bilderbeek
  1. Dag 0

C++ begint op nul met tellen. Deze handleiding ook.


Deze handleiding begint te tellen vanaf nul en begint met een inhoudsopgave en zaken vooraf.


    1. Inhoudsopgave




Programmeren in C++ voor beginners 1

0. Dag 0 2

0.0. Inhoudsopgave 3

0.0. Voorwoord 5

0.1. Over de cursus 6

0.2. Het C++ Panel 8

0.3. Thema's per dag 9

0.1. Aan te raden literatuur 10

0.1.0. Boeken 10

0.1.1. On-line boeken 10

0.1.2. Snel iets opzoeken 10

1. Dag 1 11

Een mogelijk eindprogramma van vandaag. 11

1.0. Over C++ 12

1.1. Over Kylix, C++ Builder en Turbo C++ 13

1.2. Overzicht van de belangrijkste vensters 14

1.3. Een programma beheren 15

1.4. Een nieuw programma beginnen 15

1.5. Een programma opslaan 15

1.6. Een programma laden 15

1.7. Applicatie 0 16

1.8. Het Component Palette 17

Het Component Palette 17

Een Form met alle Standard Components 17

1.9. De Object Inspector 18

1.10. Events 19

1.11. Een Event programmeren 20

1.12. Properties run-time wijzigen 21

1.13. Properties lezen 23

1.14. Het if-statement 25

1.15. Compile fouten 29

1.16. Linker errors 31

1.17. Een echte applicatie 32

1.18. Volgende week 32

2. Dag 2 33

Een mogelijk eindprogramma van vandaag. 33

2.0. Data types en variabelen 34

2.1. Scope van variabelen 37

2.2. Conversie van variabelen 39

2.3. Rekenen met int en double 41

2.4. De for-loop 42

2.5. Verkorte rekenschrijfwijze 43

2.6. Meer over for-loops 44

2.7. Speciale for-loops 44

2.8. Een truc 45

2.9. Het switch statement 45

2.10. Debuggen 47

2.11. Volgende week 49

3. Dag 3 50

Een mogelijk eindprogramma van vandaag. 50

3.0. TStringGrid 51

3.1. Functies 51

3.2. De debugger en functies 54

3.3. Waar zet ik mijn functies in Kylix? Unit1.h? 54

3.4. assert 58

3.5. Volgende week 62

4. Dag 4 63

Een mogelijk eindprogramma van vandaag. 63

4.0. const 64

4.1. Referencing 67

4.2. Referencing voor meerdere return-waarden 68

4.3. Reference-to-const 69

4.4. References en pointers 70

4.5. Pixel manipulatie 70

4.6. Een plaatje vergroten 73

4.7. Rekenen met unsigned char en int 74

4.8. Volgende week 75

4.9. Code van Skrienseefer 75

5. Dag 5 77

5.0. Een member variable 78

5.1. Een std::vector 80

5.2. Twee-dimensionale std::vector 84

5.3. Access violation 85

5.4. Bitblitting 86

5.5. Volgende week 87

5.6. Code PompebledRainer 87

5.6.0. Unit1.h 88

5.6.1. Unit1.cpp 88

6. Dag 6 92

6.0. Template functies 92

6.1. STL Header files 94

6.2. STL functies 96

6.3. Random numbers 97

6.4. Een eigen data type 98

6.5. Double-buffering 99

6.6. Volgende week 99

7. Dag 7 100

7.0. Een klasse 100

7.1. Constructor 103

7.2. Const methoden 105

7.3. Klasse definitie en declaratie scheiden 107

7.4. Verschil tussen class en struct 108

7.5. De debugger 109

7.6. Het laatste woord over de klasse Klok 109

7.7. Volgende week 109

8. Dag 8 110

8.0. De TForm1 constructor 110

8.1. Een TForm aanmaken 111

8.2. De TForm1 constructor aanpassen 113

8.3. Werken met meerdere verschillende Forms en/of Units 115

8.4. Een console applicatie 116

8.5. std::string 118

8.6. En nu verder 120

9. Appendix A: Een plaatje laten stuiteren 120

10. Appendix B: Maar wat is dat dan? 122

11. Appendix C: Sneltoetsen 124

12. Appendix D: Overzicht 125

12.0. Cast 125

12.1. Code 125

12.2. Compiler 125

12.3. Data type 125

12.4. Declaratie 125

12.5. Definitie 125

12.6. Event 126

12.7. Functie 126

12.8. Functie declaratie 126

12.9. Functie definitie 126

12.10. Functie prototype 127

12.11. Generiek programmeren 127

12.12. Header file 127

12.13. Identifier 127

12.14. Implementatie bestand 127

12.15. Initialiseren 127

12.16. Klasse 128

12.17. Klasse declaratie 128

12.18. Klasse definitie 128

12.19. Lidfunctie 129

12.20. Methode 129

12.21. Methode declaratie 129

12.22. Methode definitie 129

12.23. Procedure 130

12.24. Referentie 130

12.25. STL 130

12.26. Unit 130

12.27. Variabele 130

12.28. Variabele declaratie 131

12.29. Variabele definitie 131




    1. Voorwoord

Er zijn veel manieren om een cursus C++ programmeren op te zetten: begin je eerst met de C systax, de C++ klassen of een grafische bibliotheek? Is er al materiaal aanwezig dat moet worden hergebruikt? En wordt er een boek gevolgd?


Deze cursus is de eerste cursus die ik helemaal vanuit mijn eigen filosofie heb opgezet.
Ja, we beginnen met grafische dingen, ook al weten we niet precies wat er achter de schermen gebeurt. Dit is ook niet belangrijk: er is een (hopelijk) visueel aantrekkelijk resultaat en ooit worden deze details vanzelf duidelijk.
Nee, er wordt geen boek gevolgd. Het best aansluitende boek (Sam's Teach Yourself C++ Builder in 24 Hours) is niet meer verkrijgbaar. Inplaats daarvan worden er boeken gevolgd. Wel volg ik de wijsheid van de beste C++ boeken op.
Deze cursus heb ik 'alleen' opgezet. En alleen tussen aanhalingstekens, want er waren altijd genoeg mensen die in gedachten over mijn schouders meekeken. Dit waren Bjarne Stroustrup, Herb Sutter, Scott Meyers, Andrei Alexandrescu, Andrew Koenig, Herbert Schildt, Jesse Liberty, Barbera Moo, Bruce Eckel, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Marshall Cline, Greg Lomow, Mike Girou. Als tegengewicht keken veel code monkeys (in de negatieve betekenis) mee, die ik heb samengevoegd in de jonge Bill Gates.
Ook Momo en Spike waren er altijd om me te helpen mijn gedachten te ordenen. En ook Persephone, ook al was dit de hond van Scott Meyers.
Veel plezier met de cursus,
Richèl Bilderbeek
    1. Over de cursus

Deze cursus is opgezet met de volgende hoofdgedachten:

* De Joost methode

* Practisch

* Voor iedereen te begrijpen

* Geen thuiswerk verplicht

* Geen boeken verplicht

* Leuk
De cursus werkt volgends de Joost methode. Deze methode is mijn eigen favoriete methode om iemand C++ te leren en is vernoemd naar de eerste persoon die ik op deze manier heb leren programmeren. Deze methode houdt in dat we eerst leren met de programmeeromgeving te werken, zonder te snappen wat er eigenlijk gebeurt. Naarmate de cursus vordert, vallen de stukjes vanzelf op hun plaats. Hierdoor is deze cursus vergeleken met een doorsnee cursus 'achterstevoren': de laatste dag pas leren we pas een console/DOS applicatie te maken!


De cursus is practisch opgezet: elke dag werkt toe naar een bepaald eindprogramma. Alles wat hiervoor niet relevant is, wordt later of niet behandeld.
De cursus is voor voor iedereen te begrijpen. Het tempo is zo laag mogelijk gehouden en de uitleg zo simpel mogelijk. Dit houdt niet in dat als je het begrijpt, dat je dan goed kunt programmeren. Dit vereist immers een bepaalde logische manier van denken, die elke niet-programmeur moet ontwikkelen.
De cursus verplicht geen thuiswerk. Het is de bedoeling dat elke dag voldoende is om haar thema's te behandelen. Om snel een goed programmeur te worden, is het wel nodig veel ervaring op te doen. Ook kan er dan meer uit de cursus worden gehaald.
De cursus verplicht geen boeken. Elke dag is er een uitleg van hoogstens drie kwartier, daarna koffie en daarna kan er zelf geprogrammeerd worden. Deze cursusgids bevat de kern van wat er behandeld wordt, maar is bij lange na niet volledig. Dit is ook niet erg: op het Internet is alles te vinden. Ook staan er goede (Engelse) C++ boeken online. Voor degenen die graag van papier lezen, zijn er zowel goede Nederlandse als Engelse boeken. Zie 'Aan te raden literatuur' voor aanbevolen literatuur.
Belangrijkste gedachte achter de cursus is dat 'ie leuk moet zijn. Omdat ik persoonlijk het het leukst vind om 'domme' spelletjes te maken, gebruik ik deze ook als voorbeeldprogramma's. En het programmeren van spelletjes is net zo leerzaam als het programmeren van een 'serieuzere' applicatie. Het gaat immers om de ervaring die wordt opgedaan.
    1. Het C++ Panel







Bjarne Stroustrup heeft C++ ontwikkeld. Hij vertelt soms zijn idee achter een bepaald concept.



Herb Sutter is auteur met Andrei Alexandrescu van 'C++ Coding Standards'. Hij geeft advies welke stijl wel of niet raden is.
  1   2   3   4   5   6   7   8   9   ...   49

  • Inhoudsopgave
  • Voorwoord
  • Over de cursus
  • Het C++ Panel

  • Dovnload 5.04 Mb.