Help me

Status
Niet open voor verdere reacties.

tom169

Gebruiker
Lid geworden
17 feb 2007
Berichten
51
Kan iemand me een goede ( en liefst niet te moeilijke en in het nederlands) site aanraden om C of C++ te leren ? Ik heb alleen ervaring met HTML enCSS maar zou graag leren programeren.:)
 
Laatst bewerkt:
C++ is een soort uitbreiding op C met als grootste vernieuwing het invoeren van klasses, en daarmee Object-georiënteerde programma's mogelijk maakt.

Je kan alle C-functies nog steeds gebruiken in C++, let wel op het includen van je headers. De C-headers kregen in C++ nieuwe namen (wegens compatibiliteitsopties): eerst een c, dan de naam van de oude header zonder de .h

dus: #include <math.h> //in C
wordt: #include <cmath> //in C++

Je programma zal hoogst waarschijnlijk ook werken als je de c-headers include, maar dit zou in een verdergevorderd stadium fouten kunnen geven die zeer moeilijk te vinden zijn.

--Johan

PS: Deze uitleg is zeker niet volledig, maar ik heb nu geen tijd om hier een boekje neer te typen. Vul gerust aan ;)
 
Wat is een klasse ?

Ik begrijp niet zo goed wat een klaaae is . gelieve niet te moeilijk uitleggen
 
Je kan je bericht altijd aanpassen, dan hoef je geen nieuw bericht te plaatsen. Dit doe je door onderaan je bericht op 'bericht aanpassen' te klikken. Doe dit wel alleen bij schrijfoutjes ofzo, niet als je iets nieuws te melden hebt of een volgende vraag in het topic dan kan je best kiezen voor 'reageer op vraag'.
 
Laatst bewerkt:
Een klasse is niet altijd even eenvoudig uit te leggen, maar ik zal het eens proberen:

Om te weten wat een klasse is, moet je weten waarvoor het aangemaakt is. Een klasse is de basiseenheid binnen Object-Oriënted programmeren.

Wat is OO?
OO - object-oriëntatie - is een programmeermethode die toelaat om dingen (objecten) uit de 'echte' wereld beter te omschrijven/gebruiken in je programma's.

Wat is een klasse?
Een klasse is de omschrijving van 1 bepaald object: wat het is en wat het kan. Je maakt eigenlijk een nieuw 'type' aan (net zoals int, string, char...). Een voorbeeld kan dit wellicht verduidelijken.
Stel dat je een programma schrijft waarin je een auto nodig hebt. Een auto bestaat uit heel wat onderdelen. Zo heeft ie 4 wielen, en kan hij enkel rijden als de vier wielen draaien.
2 codes om een auto te laten rijden, in de main-functie
Code:
//zonder klasses, de wielen zijn als integers gedefinieërd
//de auto staat stil
int snelheid_w1 = 0;
int snelheid_w2 = 0;
int snelheid_w3 = 0;
int snelheid_w4 = 0;
//we versnellen naar 10km/u
snelheid_w1 += 10;
snelheid_w2 += 10;
snelheid_w3 += 10;
snelheid_w4 += 10;
Code:
//met klasses, myAuto is van het type 'Auto'
//de auto wordt aangemaakt en staat standaard stil
Auto myAuto();
//we versnellen naar 10km/u
myAuto.versnel(10);
Het is niet zo moeilijk om te ontdekken dat de 2de code heel wat leesbaarder is. Natuurlijk moet je wel ergens zeggen wat een auto is, en wat die versnelmethode doet. En hier komen we bij de klasse zelf terecht.
Code:
//we zeggen dat we een klasse gaan maken
class Auto
{
    //eerst sommen we alle eigenschappen op die wij nodig hebben
    //private betekent dat deze variabelen enkel binnen deze klasse kunnen gebruikt worden
    //dus niet zichtbaar zijn voor andere functies
  private:
    int snelheid_w1;
    int snelheid_w2;
    int snelheid_w3;
    int snelheid_w4;

    //public: wat nu volgt is bruikbaar voor alle andere functies
  public:
    //nu schrijven we de constructor, deze bepaalt wat er gebeurt als een variabele van het
    //type 'Auto' wordt aangemaakt, dit is een functie met als resultaat(return-type) een 
    //Auto
    Auto Auto()
    {
        snelheid_w1 = 0;
        snelheid_w2 = 0;
        snelheid_w3 = 0;
        snelheid_w4 = 0;
    }

    //we schrijven ook de functie versnel, deze krijgt een int als argument, de versnelling
    //die gemaakt moet worden
    void versnel(int v)
    {
        snelheid_w1 += v;
        snelheid_w2 += v;
        snelheid_w3 += v;
        snelheid_w4 += v;
    }
};
Zoals je ziet is de code van de klasse auto eigenlijk dezelfde als de eerste code die ik gepost heb. Alleen staat deze code nu niet meer in de functie waarin de auto moet versnellen.

Wat is het nut? Je hebt nu toch zopas meer code moeten typen?
Dat lijkt misschien zo, maar volg even mee. We hebben nu een programma waarin 1 auto kan rijden. Maar het zou toch veel leuker zijn als er meerdere auto's rondreden, niet?
Als we nu nog 2 auto's willen bijmaken, zonder dat we klasses gebruikten, moet je al de code van je ene auto opnieuw typen, alle variabelen andere namen geven, ... Een redelijk tijdrovend werkje.
Maar als we gebruiken maken van onze klasse Auto, die al deze variabelen bundelt wordt onze nieuwe code gewoon zo:
Code:
Auto myAuto();
myAuto.versnel(10);

Auto tweede_auto();
Veel leesbaarder en sneller gemaakt, lijkt me.

[B]en er is meer[/B]
Leuk, al onze auto's rijden er lustig op rond. Maar nu wil ik dat een auto ook een merk heeft, of een model, of hij moet kunnen draaien...
Zonder klasse zou je opnieuw je hele code moeten doorspitten om overal een draai-functie te schrijven waar nodig.
Met klasses kan je gewoon in de klasse een functie draailinks() of draairechts() schrijven, die de nodige code bevat, en die dan op elke auto in het programma oproepen wanneer nodig.

[B]en er is nog meer :D [/B]
C++ wordt vaak gebruikt voor grote programma's. Programma's die je niet meer alleen kan coderen, maar waarvoor je in teamverband werkt.
Stel dat iemand anders een persoon-klasse heeft gemaakt. Zijn Persoon heeft een auto, en rijdt met die auto van zijn huis naar zijn werk. Dan kan die programmeur volgende code schrijven: [CODE]//in zijn Persoon-klasse
void rijVanWerkNaarHuis()
{
    mijnAuto.versnel(50);
    mijnAuto.draailinks();
    mijnAuto.draailinks();
    mijnAuto.draairechts();
    mijnAuto.stop();
}
Die programmeur hoeft helemaal niet te weten welke code je auto uitvoert om te draaien, die programmeur weet enkel dat je auto kan draaien, meer niet.

Nawoord
Dit is slecht een voorbeeld van wanneer klasses gebruikt worden, en het is misschien niet zo makkelijk te verstaan, aangezien je nog maar net met programmeren bent begonnen.
Mijn advies: Zorg ervoor dat je eerst zeer goed weet welke basisfuncties er zijn, hoe je variabelen en functies kan gebruiken, voordat je jezelf in klasses verliest.
Begin met kleine console-programmatjes. Het kan best frustrerend zijn dat deze nog niet echt functioneel zijn, maar ze maken je wel tot een goede programmeur.

--Johan

P.S.: hier vind je zeer eenvoudige oefeningen de reeks wordt binnenkort vervolgd
 
ok

Je kan je bericht altijd aanpassen, dan hoef je geen nieuw bericht te plaatsen. Dit doe je door onderaan je bericht op 'bericht aanpassen' te klikken. Doe dit wel alleen bij schrijfoutjes ofzo, niet als je iets nieuws te melden hebt of een volgende vraag in het topic dan kan je best kiezen voor 'reageer op vraag'.
Dank u zal ik de volgende keer doen
 
dank u johan

Ik ga eerst kijken om lussen te leren en daarna zal ik pas kijken naar klassen.En ik ga natuurlijk ook je oefeningen bekijken.
 
Laatst bewerkt:
hoe moet ik printen

Ik heb de cursus die ik volg doorgenomen en er niets over printen?Kan iemand me daar iets meer over vertellen of kent iemand een betere cursus ?
 
Als je echt van plan bent om te gaan programmeren enzo zal ik eerder eens kijken naar een boek ofzo, met online cursussen red je het niet alleen. (teminste ik niet)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan