login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > C++


Gegevens:
Geschreven door:
nemesiskoen
Moeilijkheidsgraad:
Moeilijk
Hits:
8793
Punten:
Aantal punten:
 (4)
Aantal stemmen:
10
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (0)
 


Tutorial:

C++ OOP

1. Beginwoord
2. OOP?
3. Voorbeeld
4. Uitleg
 top
1. Beginwoord

OOP in .cpp is zeer ingewikkeld. Ik moet eerlijk zeggen dat ik er zelf nog niet alles van snap.
Via deze tutorial ga ik er de basisprincipes van proberen uit te leggen.


2. OOP?

Eerst en vooral, wat is OOP.
OOP staat voor Object Orientated Programming, en alles draait rond objecten.
Allemaal mooi en wel, maar wat zijn objecten.
Een object moet je beschouwen als een soort SUPER VARIABELE, misschien zelfs een SUPER FUNCTIE.
Deze SUPER FUNCTIE kan een hele hoop informatie bevatten.
BV. een functie zelf, of meerdere functies, variabelen, input, output...

OOP wordt gebruikt om "netjes" te programeren en vooral omdat het heel gemakelijk is voor te programeren eens je je 'object' hebt aangemaakt.
Dan moet je gewoon elke keer gewoon je 'object' aanroepen en kan je de functies hierin gebruiken.
Voor de mensen die al OOP met PHP hebben gedaan heb ik het spijtige nieuws dat het helemaal NIET op elkaar trekt.
Een klein voorbeeldje hiervan.
In PHP maak je je CLASS aan maar 'declareer' je het eigelijk nooit als een class.
In CPP maak je je CLASS aan en dan ga je deze nog eens declareren PLUS zeggen hoeveel objecten de CLASS bevat.

Dit klinkt misschien allemaal heel ingewikkeld, maar daarom deze tutorial ook, om het uit te leggen.

3. Voorbeeld
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

const int objecten = 15;

class
jouw_class
{
public:
    
int getal;
    
char naam[50];
    
void toon(){
        
cout << naam << " heeft dit getal ingevoerd: " << getal << endl;
    }
};

int main()
{
    
jouw_class object_table[objecten];
    
ofstream bestand("bestand.dat", ios::binary);

    if (!
bestand.is_open()) {
        
cerr << "FATAL ERROR: bestand kan niet worden aangemaakt" << endl;
        exit(
1);
    }

    
strcpy(object_table[0].naam,"Koen");
    
object_table[0].getal = 5;

    
strcpy(object_table[1].naam,"Pieter");
    
object_table[1].getal = 7;

    
bestand.write(reinterpret_cast<char *> (object_table), objecten * sizeof(jouw_class));

    
bestand.close();


    
ifstream invoerstroom("bestand.dat", ios::binary);

    if (!
invoerstroom.is_open()) {
        
cerr << "FATAL ERROR: bestand kan niet worden aangemaakt" << endl;
        exit(
1);
    }

    
invoerstroom.read(reinterpret_cast<char *> (object_table), objecten * sizeof(jouw_class));
    
object_table[0].toon();
    
object_table[1].toon();

    
invoerstroom.close();

    return
0;
}

Ik weet wat je nu denkt... er staat geen uitleg bij, wel, die vind je in puntje 4, stap voor stap
4. Uitleg

#include <iostream.h>//basisgegevens includen...
#include <fstream.h>
#include <stdlib.h>



const int objecten = 15;//een constante integer maken, dit betekend dat deze niet van waarde kan veranderen


class jouw_class//class aanmaken
{
public:
    
int getal; //een gewone integer maken
    
char naam[50];//een gewone reeks van characters aanmaken
    
void toon(){//de methode toon() aanmaken. Deze is van het type void, wat betekend dat het geen waarde terugstuurt, enkel output of berekeningen.
        
cout << naam << " heeft dit getal ingevoerd: " << getal << endl;//we geven gewoon weer welk getal de persoon heeft gekozen
    
}
};


int main()
{
    
jouw_class object_table[objecten]; //hiermee 'declareer' je je classe, je geeft met de variabele objecten mee hoeveel objecten er zijn
    
ofstream bestand("bestand.dat", ios::binary); //je declareert je bestand waar je je gegevens gaat wegschrijven, en je zegt dat je BINAIR wilt schrijven, hieruit volgt dat je later nog iets met de waarden kan doen

    
if (!bestand.is_open()) {//kijken of je het bestand kan aanmaken, als dit niet zo is, dan geven we een error...
        
cerr << "FATAL ERROR: bestand kan niet worden aangemaakt" << endl;//error weergeven
        
exit(1);//bestand stoppen
    
}

    strcpy(object_table[0].naam,"Koen");
    
object_table[0].getal = 5;

    
strcpy(object_table[1].naam,"Pieter");
    
object_table[1].getal = 7;
    
//waardes geven aan de variabelen van het object: object_table

    bestand.write(reinterpret_cast<char *> (object_table), objecten * sizeof(jouw_class));
    
//de gegevens wegschrijven in een extern bestand

    
bestand.close();
    
//het bestand afsluiten

    ifstream invoerstroom("bestand.dat", ios::binary);
    
//dit bestand weer openen, kan ook in een ander document, dit is voor de gegevens weg te schrijven

    
if (!invoerstroom.is_open()) {//kijken of je het bestand kan aanmaken, als dit niet zo is, dan geven we een error...
        
cerr << "FATAL ERROR: bestand kan niet worden aangemaakt" << endl;//error weergeven
        
exit(1);
    }

    invoerstroom.read(reinterpret_cast<char *> (object_table), objecten * sizeof(jouw_class));
    
//gegevens lezen(read)

    
object_table[0].toon();
    
object_table[1].toon();
    
//en hier de functie toon() uitvoeren

    
invoerstroom.close();
    
//mooi afsluiten

    
return 0;
    
//elke functie retourneert een waarde (of geeft een waarde terug), hier dus ook... 0
}

 top

« Vorige tutorial : Een start maken met C++ Volgende tutorial : C++ Deel 2 (Input en Output) »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.018s