Frage zu objektorientierter Programmierung (Hierarchie)
-
Moin moin,
ich habe eine - wahrscheinlich einfache - Frage zu objektorientierter Programmierung in C++.
Ich habe einen Roboterarm, der 2 Armmodule hat. Pro Armmodul sind wiederum 2 Motoren verbaut. Die Motoren und Armmodule sollen jeweils verschiedene (voneinander unabhängige) Eigenschaften und Funktionen haben.
Meine Klassen möchte ich hierarchisch aufbauen, sodass ich beispielsweise schreiben kann:
Armmodul[1].Enable();
Armmodul[2].Enable();Armmodul[1].Motor[1].Sollwert = 100;
Armmodul[1].Motor[2].Sollwert = 120;Armmodul[2].Motor[1].Sollwert = 50;
Armmodul[2].Motor[2].Sollwert = 70;Insofern wären die Klassen nicht im Sinne von Vererbung voneinander abgeleitet, sondern die übergeordnete Klasse würde eine untergeordnete enthalten.
Wäre so etwas möglich? Freue mich über Lösungsvorschläge!
Danke und Gruß,
Nico
-
Klar geht das.
struct Motor { int Sollwert; }; struct CArmmodul { CMotor Motor[2]; void Enable(); }; struct CBot { CArmmodul Armmodul[2]; };
-
Du hast ja eine "hat ein" Beziehung. -> keine Vererbung sondern eine Aggregation.
Vererbung würde keinen Sinn machen