OOP Klassen erstellen ?

Stephan Liebig

Erfahrenes Mitglied
Ich als c++ Neuling, brauche wieder eure Hilfe.

Folgende Aufgabenstellung:

Implementieren Sie eine Klasse Bauteil und abgeleitete Klassen Lampe, Kabel und Piepser. Legen Sie
hierzu jeweils für jede Klasse, deren Methoden und das Testprogramm separate Dateien an. Die Direktive #<include string> stellt Ihnen die Klasse string zur Verfügung. Nachfolgend werden die erforderlichen
Eigenschaften und Methoden aufgeführt, die bei Bedarf durch weitere ergänzt werden können.
Erforderliche Eigenschaften/Methoden für Bauteil:
Eigenschaften
- bezeichnung (string)
- strom (bool)
- naechstesBauteil (Zeiger auf Bauteil) – wird im Praktikum 5 nicht benötigt
Methoden
- Default Konstruktor und ein zusätzlicher Konstruktor
- Alle Eigenschaften am Bildschirm in einer Zeile anzeigen
- get für die Eigenschaften bezeichnung
- set für die die Eigenschaft strom
- get und set für die Eigenschaft naechstesBauteil

Für alle abgeleiteten Klassen sind geeignete Konstruktoren zu implementieren.
Zusätzliche Eigenschaften/Methoden für Kabel:
Eigenschaften
- farbe (string)
Methoden
- eine Methode zur Anzeige aller Eigenschaften von Kabel

Zusätzliche Eigenschaften/Methoden für Lampe:
Eigenschaften
- farbe (string)
Methoden
- eine Methode getLeuchtet, die anzeigt ob die Lampe leuchtet
- eine Methode zur Anzeige aller Eigenschaften von Lampe

Zusätzliche Eigenschaften/Methoden für Piepser:
Eigenschaften
-dauer (?)
Methoden
- eine Methode piepsen, die ein akustisches Signal erzeugt und dessen Zeitdauer über die Eigenschaft
dauer gesteuert werden soll.
Hinweis: der Befehl cout<<“\x07“; erzeugt einen kurzen Ton.
- eine Methode setDauer
- eine redefinierte Methode setStrom, die u.a. das akustische Signal einmal auslöst, wenn der Strom
eingeschaltet wird.
- eine Methode zur Anzeige aller Eigenschaften von Piepser.

Und das ist momentan mein Stand der Dinge

C++:
//Praktikum 5 - OOP - Baukasten
//Last Update: 20. Dez 2007 - 12:00

#include <iostream>
#include <string>
using namespace std;

class Bauteil {
private: 
	//Nur innerhalb der Klasse erreichbar
public:
	//Für alles andere erreichbar
	string bezeichnung;
	bool strom;
	
	void infoToScreen(void); //Eigenschaften am Bildschirm ausgeben
}

int main() {
	//machwas

	return 0;
}

void Bauteil::infoToScreen(void) {
	//Alle Eigenschaften in einer Zeile an den Bildschirm ausgeben
}

Was mir jetzt irgendwie kummer bereitet - erstmal - ist das mit dem

- get für die Eigenschaften bezeichnung
- set für die die Eigenschaft strom
- get und set für die Eigenschaft naechstesBauteil
 
Zuletzt bearbeitet von einem Moderator:
Hallo!


Also so wie du das angehst, wird das, glaub ich erst mal nichts. Schon der Aufbau der Klasse Bauteil (die ja als Basisklasse dienen soll) ist nicht so ganz korrekt. Du sollst doch weitere Klassen von Bauteil erben lassen, also nimm auch das Schlüsselwort protected.
Mal so als Denkanstoß:

Code:
class Bauteil {
    protected:
        string bezeichnung;
        bool strom;
        Bauteil *naechstesBauteil;

    public:
        Bauteil();
        ~Bauteil();
        void infoToScreen();
        string getBezeichnung(string);
        bool setStrom(bool);
};

Davon leitest du dann die anderen Klassen ab (Kabel : Bauteil) usw.! Und nur als Tipp (ich weiß es ist Geschmackssache), aber ich würde nur die Klasse schreiben und in einer .cpp oder .cc oder wo auch immer dann die Methoden ausprogrammieren. Nicht in der Klasse selbst, das wird zu unübersichtlich!



Gruß
Buba
 
Zurück