Du bist nicht angemeldet.

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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

24.10.2015, 13:51

Liest du die Antworten überhaupt?

Du kommst hier immer wieder mit neuen Beispielen, die aber allesamt falsch sind.

Eine Versammlung ist kein Politiker und auch kein Zuhörer.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

24.10.2015, 14:07

Ich komme mir langsam auch ehrlich gesagt etwas veralbert vor. Ich habe doch ganz eindeutig klar gestellt, wie es laufen sollte und wie nicht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

24.10.2015, 14:47

Und wofür möchtest du eine Klasse Anzahl erstellen?
Und auch wenn es jetzt schon gefühlte 1000 mal in diesem Thread gesagt wurde. Eine Versammlung ist nicht mehrere Teilnehmer sondern hat Teilnehmer. Warum das so ist wurde von BlueCobold wirklich sehr schön erklärt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

14

24.10.2015, 19:13

Wenn der Code so aussieht, rate ich ebenfalls ganz dringend den Code umzugestalten!
Vererbung ist hier nicht die richtige Wahl.

Für den (ehrlicherweise unwahrscheinlichen) Fall, dass dein echter Code zurecht Mehrfachvererbung verwendet oder mal jemand anderes den Thread findet:
Das was du suchst geht entweder mit using oder einer genaueren Angabe, welche Methode du aufrufen möchtest. (Das habe ich dir übrigens schonmal in dem anderen Thread gesagt. ;) )

Also entweder mit Option::los oder Base::los aufrufen oder in der abgeleitetem Klasse, die du "Super" genannt hast, eine der beiden Methoden mit using Option::los; oder using Base::los; im Class-Scope hervorheben.

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

15

24.10.2015, 20:59

Vielleicht hilft folgendes Diagramm deinem Verständnis zu Klassen:


(Link)


Ein Kombi ist ein PKW und gleichzeitig ein Kfz ... ein Kfz ist aber nicht automatisch ein Kombi

16

24.10.2015, 21:54

Hallo Freunde,

wir reden Komplett an einander vorbei!


Ich möchte Objekte/Modelle designen, die natürlich auf Klassen basieren, das bedeutet aber nicht im Umkerschluß, dass wenn ich von einer Klasse ableite, selber eine Klasse bin.

Noch einmal ganz deutlich ich habe ein Satz Klassen, im weiterem Schritt will ich eine Zusammenstellung machen, die je nach seinem Grundwesen von einigen Klassen abgeleitet sind.

Ist das illegal?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

24.10.2015, 21:57

Das ist schlicht Unsinn im Sinne von Objekt-Orientierung und C++.
Ableiten ist die "Ist ein"-Relation. Das ist fest definiert und das ändern zu wollen geht nicht, weil das eine feste Semantik und feste Konsequenzen in C++ hat. Entweder willst Du lernen, wie man es richtig macht und wie man es eben nicht macht, oder Du willst kein C++ lernen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

18

24.10.2015, 22:11

Das ist schlicht Unsinn im Sinne von Objekt-Orientierung und C++.
Ableiten ist die "Ist ein"-Relation. Das ist fest definiert und das ändern zu wollen geht nicht, weil das eine feste Semantik und feste Konsequenzen in C++ hat.

Vielleicht hilft folgendes Diagramm deinem Verständnis zu Klassen:


(Link)


Ein Kombi ist ein PKW und gleichzeitig ein Kfz ... ein Kfz ist aber nicht automatisch ein Kombi
Das was ich machen will ist, genau ein Schritt weiter.
Sprich: eine Automobilfirma kann nur auf diesen Klassen, die Du aufgezeigt hast aufbauen, natürlich kann sie irgendetwas zusammenfrickeln, allerings wird es nicht gut ankommen...

Was ich will, ist, dass ich ein eigenes Modell gestalte:

Quellcode

1
2
3
4
class mein_model : public Cabrio, BassBoxen(3000)//Ein Cabrio mit 3000W Boxen 
{
//details
}



Ich habe jetzt mein eigenes Modell erstellt(Das Bassbeat Cabrio), die Einzelheiten werden von den Technikern gemacht: Farbe, Reifen, etc...

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

19

24.10.2015, 22:20

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 bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

20

24.10.2015, 22:34

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!
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige