Files
mips/_old/src/ClassBeispiel4.cpp
T
jens 26291bca3d - initial import
git-svn-id: http://moon:8086/svn/mips@1 a8ebac50-d88d-4704-bea3-6648445a41b3
2014-07-20 15:01:37 +00:00

124 lines
3.5 KiB
C++

/***********************************************************************/
/* Klassen in C++, Beispiel 4
/* 24.07.1999
/***********************************************************************/
#include <iostream>
#include <string>
using namespace std;
/***********************************************************************/
/* Definition der Klasse Rechteck
/* Es hat sich gegenüber Beispiel 3 nichts geändert
/***********************************************************************/
class CRechteck
{
public:
CRechteck (int, int) ; // Konstruktor
void BerechneFlaeche(void);
protected:
int breite;
int hoehe;
};
/***********************************************************************/
/* Definition der Elementfunktionen der Klasse CRechteck
/* Es hat sich gegenüber Beispiel 3 nichts geändert
/***********************************************************************/
// Elementfunktion zur Berechnung der Rechteckflaeche
void CRechteck::BerechneFlaeche(void)
{
int f;
f = breite * hoehe;
cout << endl << "Die Flaeche des Rechtecks betraegt: "
<< f << " qcm." << endl;
}
// Konstruktor Funktionsdeklaration
CRechteck::CRechteck(int b, int h)
{
breite = b;
hoehe = h;
}
/* Ende CRechteck
/***********************************************************************/
/* Definition einer neuen, abgeleiteten Klasse CRechteck2 welche die gleichen
/* Eigenschaften besitzt wie die Basisklasse CRechteck (Vererbung) aber durch
/* die Funktion BerechneUmfang() ergänzt wird
/***********************************************************************/
class CRechteck2 : public CRechteck
{
public:
// Es muß ein neuer Konstruktor her
CRechteck2 (int b, int h);
// Neue Elementfunktion BerechneUmfang();
void BerechneUmfang(void);
};
/***********************************************************************/
/* Definition der zusätzlichen Elementfunktionen
/* innerhalb der Klasse CRechteck2
/***********************************************************************/
// Die Konstruktorfunktion CRechteck2 muß noch von der
// Basisklasse CRechteck abgeleitet werden.
CRechteck2::CRechteck2(int b, int h):CRechteck(b, h)
{ } // {} keine neuen Konstruktorfunktionen hinzugekommen
// Neue Elementfunktion BerechneUmfang();
void CRechteck2::BerechneUmfang(void)
{
int u;
u = 2 * (breite + hoehe);
cout << endl << "Der Umfang des Rechtecks betraegt: "
<< u << " cm." << endl;
}
/* Ende CRechteck2
/***********************************************************************/
/* Hauptprogramm zum Testen der Klasse Rechteck2
/*
/***********************************************************************/
int main (void)
{
// Ein Rechteck-Objekt der neuen abgeleiteten Klasse CRechteck2
// erzeugen
CRechteck2 MeinRechteck(10, 5);
// Fläche des Objekts 'MeinRechteck' berechnen und anzeigen
// Mit Hilfe der bewährten Basis-Elementfunktion BerechneFlaeche()
MeinRechteck.BerechneFlaeche();
// Umfang des Objekts 'MeinRechteck' berechnen und anzeigen
// Mit Hilfe der hinzugekommenen Elementfunktion BerechneUmfang();
MeinRechteck.BerechneUmfang();
return 0;
}
/*
Das war das vierte und letzte Beispiel.
Das hier waren erstmal die Grundlagen zum Verständnis.
Bis hierhin ist ungefähr mein Kenntnisstand.
Ich hoffe ich konnte ein wenig helfen.
Du könntest vielleicht mal weitere Elementfunktionen wie
z.B. setbreite() und sethoehe() hinzufügen,
um ein vorhandenes Rechteck-Objekt zu verändern.
*/