Beispiel 5: ClRomZahl II

28.11.2016 08:30 Uhr
#include <iostream>

using namespace std;
#include "rom5.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis.addiere(zahl1,zahl2);

cout << zahl1.druckbar() << " + " << zahl2.druckbar() << " = " << ergebnis.druckbar() << endl;
}

Beispiel 5: Erläuterungen zur Header-Datei

(Vollständiges Programm im Anhang)


class ClRomZahl
    {
public:
    void hole() { cin >> roemisch; zuArabien();}

Die  Definition  einer zu einer Klasse gehörigen
Funktion kann auch direkt in der Klassendeklaration untergrebracht werden,
wobei die Funktion durch ein Paar geschweifter Klammern
zu umgeben ist.
Dies hat zwei Effekte:
1) Da Klassen normalerweise sehr viele extrem kurze Funktionen zum
Zugriff auf Ihre Mitglieder enthalten, wird das Ganze etwas übersichtlicher.
2) Derartige Funktionen werden als inline Funktionen
gehandelt. D.h., der Compiler setzt sie so um, als ob der nötige Code an
der Stelle stünde, an der die Funktion aufgerufen wird.
Merke:
Kurze Inline-Funktionen verringern die Laufzeit eines Progrmames,
oft erheblich.
ABER: Lange Inline-Funktionen vergrößern den Speicherbedarf des
Programmes ganz beträchtlich!


    char *druckbar() { return roemisch; }
    void addiere(ClRomZahl zahl1,ClRomZahl zahl2)
       {
       arabisch=zahl1.arabisch+zahl2.arabisch;
       zuRom();
       }
private:
    char roemisch[20];
    int arabisch;
    void zuArabien();
    void zuRom();
    } ;

Anhang: example5.zip

Schlagwörter: