Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Ich weiß, was Du meinst, allerdings kann ich das Auto dann nicht verändern.Nein. Nein. Nein.
Wenn dann hast du etwas wie
C-/C++-Quelltext
1 2 3 4 class Cabrio : public PKW { private: std::vector<AddIn> addIns; }
Und dann hättest du eine abstrakte Klasse AddIn, von der du ein AudioAddIn erben lässt.
Du hast offensichtlich riesige Probleme mit dem Verständnis von objektenorientiertem Programmieren.
Edit: Wobei addIns hier eigentlich eher ein protected-Member von PKW sein sollte. Aber egal, geht ja um die Anschaulichkeit.
Ich weiß, was Du meinst, allerdings kann ich das Auto dann nicht verändern.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Ich weiß, was Du meinst, allerdings kann ich das Auto dann nicht verändern.Nein. Nein. Nein.
Wenn dann hast du etwas wie
C-/C++-Quelltext
1 2 3 4 class Cabrio : public PKW { private: std::vector<AddIn> addIns; }
Und dann hättest du eine abstrakte Klasse AddIn, von der du ein AudioAddIn erben lässt.
Du hast offensichtlich riesige Probleme mit dem Verständnis von objektenorientiertem Programmieren.
Edit: Wobei addIns hier eigentlich eher ein protected-Member von PKW sein sollte. Aber egal, geht ja um die Anschaulichkeit.
Bei deinem Beispiel besteht das Problem, dass du die Klasse Auto verändern musst, wenn Du weitere Eigenschaften hinzufügen möchtest.Oh man!
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 // um mal beim Auto zu bleiben class Reifen { private: std::string m_Marke int m_ZollGröße; public: Reifen(std::string _Marke, int _ZollGröße) { m_Marke = _Marke; m_ZollGröße = _ZollGröße; } }; class Auto { private: Reifen m_Reifen public: Auto(Reifen _Reifen) { m_Reifen = _Reifen; } }; int main { Reifen MeineReifen("Dunlop",17); Auto MeinAuto(MeineReifen); }
So kannst du Individuelle Autos "Herstellen" ohne irgendwelchen quatsch über Vererbung zu machen!
Warum sollte man es nicht verändern können. Es wurde ja wirklich schon oft gesagt. Ganz ganz wichtig ist, frage dich selbst ob eine Beziehung "ist" oder "hat" ist. In fast allen Fällen handelt es sich um eine "hat" Beziehung. So hat ein Auto eben auch ein Soundsystem und ist keins.
Was ich ziemlich merkwürdig finde, wir erklären es dir hier und jedes mal kommst du einfach mit einem neuen Beispiel um das genaue Gegenteil zu machen. Finde ich doch etwas auffällig. Wenn du trollen möchtest dann mach das bitte woanders. Oder such dir irgendeine normale Beschäftigung.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
class Mutter { Farbe Augenfarbe; }; class Kindergarten : Mutter { }; Kindergarten Kita; Kita.Augenfarbe = Gelb; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
class Mutter { Farbe Augenfarbe; }; class Kindergarten { std::vector<Mutter> Muetter; }; Kindergarten Kita; Kita.Muetter[0].Augenfarbe = Gelb; |
Bei deinem Beispiel besteht das Problem, dass du die Klasse Auto verändern musst, wenn Du weitere Eigenschaften hinzufügen möchtest.
C#-Quelltext |
|
1 2 3 |
class MainWindow : public QMainWindow, MoveOnMouseClick { .... |
Werbeanzeige