Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
#include <iostream>
using namespace std;
struct change//in een struct is standaard alles public
{
//public://dit hoeft dus niet
int mpchange;
int hpchange;
};
class mijnpoppetje//in een class is standaard alles private
{
private://kunnen alleen gebruikt worden door functies van deze class
short int level;//declareer een private variabele
protected://zelfde als private en kunnen ook gebruikt worden door friend functies
short int hp;//declareer een protected variabele
short int mp;//zelfde als hierboven
public://kan je van overal gebruiken
mijnpoppetje( int x = 0, int y = 0, int z = 0 )//een constructor, deze kun je gebruiken om variabelen
{ level = x; hp = y; mp = z; }//mee te geven bij de aanmaak van de class (zie main)
~mijnpoppetje()//een destructor, deze kun je gebruiken om variabelen in het dynamisch geheugen
{ /*destroy stuff here*/ }//te wissen
mijnpoppetje mijnpoppetje::operator=( const mijnpoppetje& temp )//een operator, zie main voor het gebruik
{
level = temp.level;//ziedaar je mag hier wel de private aanroepen van een ander object van deze class
hp = temp.hp;//deze begrijp je wel
mp = temp.mp;//deze begrijp je wel
}
mijnpoppetje mijnpoppetje::operator+=( const change& temp )
{
hp += temp.hpchange;
mp += temp.mpchange;
}
int GetLevel()//declaratie en
{return level;}//impelementatie in de class zelf
void SetLevel( int x )//declaratie en
{ level = x; }//impelementatie in de class zelf
int Gethp();//declaratie in de class
void Sethp( int x );//declaratie in de class
int Getmp();//declaratie in de class
void Setmp( int x );//declaratie in de class
};
class mijnpoppetje2 : public mijnpoppetje
{
public:
char naam[9];
mijnpoppetje2( int x = 1, int y = 1, int z = 1 )//constructors worden niet meegenomen je moet dus een nieuwe maken
{ /*level = x;*/ hp = y; mp = z; sprintf(naam,"mijnnaam");//level is private die mag je zo dus niet setten
(*this).SetLevel(x); }//zo mag het wel, (*this) staat voor de class die aangemaakt word
};
int main()
{
mijnpoppetje ikke( 10, 50, 60 );
mijnpoppetje iemandanders( 300, 700, 1500 );
cout << "ikke na aanmaak" << endl;
cout << ikke.GetLevel() << endl
<< ikke.Gethp() << endl
<< ikke.Getmp() << endl;
cout << endl;
ikke.SetLevel( 25 );
ikke.Sethp( 10 );
ikke.Setmp( 15 );
cout << "ikke na setters" << endl;
cout << ikke.GetLevel() << endl
<< ikke.Gethp() << endl
<< ikke.Getmp() << endl;
cout << endl;
//cout << ikke.naam;//dit kan niet, mijnpoppetje 2 krijgt de vars van de normale NIET andersom
//ikke heeft dus geen var die naam heet
ikke = iemandanders;
cout << "ikke na operator" << endl;
cout << ikke.GetLevel() << endl
<< ikke.Gethp() << endl
<< ikke.Getmp() << endl;
cout << endl;
change thischange;
thischange.hpchange = -10;
thischange.mpchange = 10;
ikke += thischange;
cout << "ikke na verandering" << endl;
cout << ikke.GetLevel() << endl
<< ikke.Gethp() << endl
<< ikke.Getmp() << endl;
cout << endl;
mijnpoppetje2 ikke2( 10 );//je hoeft maar 1 argument mee te geven aangezien alles een init waarde heeft, je stuurt altijd
//de 1e var, in dit geval dus x (welke we in level stoppen)
cout << "ikke 2" << endl;
cout << ikke2.naam << endl;
cout << ikke2.GetLevel() << endl//zie hier dat je level toch geset heb
<< ikke2.Gethp() << endl//en dat je de 2e constructor gebruikt
<< ikke2.Getmp() << endl;
cin.get();
return 0;
}
int mijnpoppetje::Gethp()//implementatie buiten de class
{
return hp;
}
void mijnpoppetje::Sethp( int x )//implementatie buiten de class
{
hp = x;
}
int mijnpoppetje::Getmp()//implementatie buiten de class
{
return mp;
}
void mijnpoppetje::Setmp( int x )//implementatie buiten de class
{
mp = x;
}
ikke na aanmaak
10
50
60
ikke na setters
25
10
15
ikke na operator
300
700
1500
ikke na verandering
300
690
1510
ikke 2
mijnnaam
10
1
1
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.