class ist die Definition einer Klasse. Die Objekte, die danach folgen, sind die wirklichen Auswirkungen dieser einen Klasse. Oder anders ausgedrückt: Die Klasse ist die Verallgemeinerung eines Objektes. Objektorientiert-Link.
Ein erstes kleines Beispiel:
Hier steht wie bei struct ein Semikolon hinter der schließenden geschweiften Klammer (rot):
class KleineKlasse
{
private:
int ersteVariable;
public:
void setzeDieVariable( int set )
{ ersteVariable = set; }
void zeigeDeineVariable()
{ cout << endl << "Variable: " << ersteVariable; }
}; //Ende der class KleineKlasse - Semikolon
int main()
{
KleineKlasse klein1;
klein1.setzeDieVariable(20);
klein1.zeigeDeineVariable();
return 0;
}//main()
Hier oben ist "KleineKlasse" die Klasse, klein1 das einzige Objekt dieser Klasse.
Eine unvollkommene Klasse:
//tier.cpp
#include <iostream>
#include <conio.h>
using namespace std;
class Tier
{
int hoehe;
int gewicht;
string name;
public:
Tier() { hoehe = 100; gewicht = 1000; name="Tiger"; }//schlechter Konstruktor
void print()
{
cout << hoehe << " " << gewicht << " " << name << endl;
}
};//Ende der class
int main()
{
cout << "Klasse:" << endl;
Tier tier1;
tier1.print();
getch();
return 0;
}
So sieht die Klasse schon besser aus:
//tier.cpp
#include <iostream>
#include <conio.h>
using namespace std;
class Tier
{
private:
int hoehe;
int gewicht;
string name;
public:
Tier() { }
void einlesenVonDaten(int hoe, int gew, string na)
{
hoehe = hoe;
gewicht = gew;
name = na;
}
void gibAllesAus()
{
cout << hoehe << " " << gewicht << " " << name << endl;
}
};
int main()
{
cout << "Klasse:" << endl;
Tier tier1;
tier1.einlesenVonDaten(90, 1500, "Tiger");
tier1.gibAllesAus();
getch();
return 0;
}
Zwei Tiere gibt es schon ...
//tier.cpp
#include <iostream>
#include <conio.h>
using namespace std;
class Tier
{
private:
int hoehe;
int gewicht;
string name;
public:
Tier() { }
Tier(int hoe, int gew, string na)//Einlesen von Daten kann auch durch den Konstruktor
{ hoehe = hoe; gewicht = gew; name = na; }//so geschehen - -
void einlesenVonDaten(int hoe, int gew, string na)//oder so.
{
hoehe = hoe;
gewicht = gew;
name = na;
}
void gibAllesAus()
{
cout << hoehe << " " << gewicht << " " << name << endl;
}
};//class-Ende
int main()
{
cout << "Klasse:" << endl;
Tier tier1;
tier1.einlesenVonDaten(90, 1500, "Tiger");//Das Einlesen hier.
tier1.gibAllesAus();
Tier tier2(100, 1350, "Eidechse"); //Das Einlesen geschieht hier auch. Der Konstruktor
// wird hierdurch aufgerufen.
tier2.gibAllesAus();
getch();
return 0;
}
3 Tiere und "static":
//tier.cpp
#include <iostream>
#include <conio.h>
using namespace std;
class Tier
{
private:
int hoehe;
int gewicht;
string name;
static int anzahl;
public:
Tier() { anzahl++; }
Tier(int hoe, int gew, string na)//Einlesen von Daten kann durch den Konstruktor
{ hoehe = hoe; gewicht = gew; name = na; anzahl++; } //so geschehen - -
void einlesenVonDaten(int hoe, int gew, string na)//oder so.
{
hoehe = hoe;
gewicht = gew;
name = na;
}
void gibAllesAus()
{
cout << hoehe << " " << gewicht << " " << name << endl;
}
static int liesAnzahl()
{ return anzahl; }
};//class-Ende
int Tier::anzahl = 0;
int main()
{
cout << "Klasse:" << endl;
Tier tier1;
tier1.einlesenVonDaten(90, 1500, "Tiger");//Das Einlesen hier.
tier1.gibAllesAus();
Tier tier2(20, 150, "Eidechse"); //Das Einlesen geschieht hier auch. Der Konstruktor
Tier tier3(10, 100,
"Schlange"); // wird hierdurch aufgerufen.
tier2.gibAllesAus();
tier3.gibAllesAus();
cout << "Die Zahl der Tiere ist: " << Tier::liesAnzahl() << endl;
getch();
return 0;
}
Bitte das YouTube-Video groß einstellen! So kannst Du es besser lesen.