- initial import
git-svn-id: http://moon:8086/svn/mips@1 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
/***********************************************************************/
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user