FSST - Hardwarenahe Programmierung

In separaten Dateien

Klassendeklaration in einer Header-Datei de_Bertl.h:

  1. Es werden wieder die notwendigen Header-Dateien mit den Praeprozessor-Direktiven inkludiert. (Zeile 2 und 3)
  2. Ist die Konstante DE_BERTL_H nicht definiert, liefert diese Direktivet 1 zurück, DE_BERTL_H wird definiert (Zeile 6) und der Code wird inkludiert bis zum #endif, sonst nicht. Somit würde die Klassendeklaration nur einmal im Projekt eingebunden. Zeile 5 und 13
  3. Erzeugung neuer Klassen: In Zeile 8 erfolgt die Deklaration der Klasse de_Bertl abgeleitet von der Klasse ur_Bertl mittels ":" und public.
  4. In Zeile 11 erfolgt die Deklaration des Befehles/Methode (Prototyping) Bewege().

// Datei de_Bertl.h
#include "mbed.h"
#include "ur_Bertl.h"

#ifndef DE_BERTL_H
#define DE_BERTL_H

class de_Bertl : public ur_Bertl
{
public:
    void Bewege();          // nur Deklaration - Prototyping
};
#endif



Klassendefinition in einer Source-Datei de_Bertl.cpp:

  1. Es werden wieder die notwendigen Header-Dateien mit den Praeprozessor-Direktiven inkludiert. (Zeile 2 - 4)
  2. Erzeugung neuer Befehle: In Zeile 6 erfolgt die Definition der Methoden mittels Scope-Operator (::) für die entsprechende Klasse (hier: de_Bertl :: Bewege()) und in Zeilen 7 - 9 steht der auszuführende Code.

// Datei: de_Bertl.cpp
#include "mbed.h"
#include "ur_Bertl.h"
#include "de_Bertl.h"

void de_Bertl :: Bewege()   // Definieren
{
    Move();
}


Hauptprogramm in der Source-Datei main.cpp:

  1. Es werden wieder die notwendigen Header-Dateien mit den Praeprozessor-Direktiven inkludiert. (Zeile 2 - 4)
  2. Instantiierung der Klasse: in Zeile 11 wird in main() ein Objekt karel der Klasse de_Bertl erzeugt (instatiiert).
  3. Aufruf der Befehle mittels Objektname (karel) einem Punkt (".") und dem Methodennamen (Bewege) den runden Klammern () und einem ";" zum Trennen weiterer Befehle. Zeile 13-15

// Datei: main.cpp
#include "mbed.h"
#include "ur_Bertl.h"
#include "de_Bertl.h"

// in eigene Dateien:   Klassen-/Methodendeklaration in de_Bertl.h
//                      Methodendefinition in de_Bertl.cpp
   
int main()
{
    de_Bertl karel;
    
    karel.Bewege();
    karel.Move();
    karel.ShutOff();   
}

Methoden


All wikipages