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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

21

14.07.2016, 18:11

Über das hier:

C-/C++-Quelltext

1
std::list<UiControl> uiControls;

solltest du nochmal ernsthaft nachdenken... ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

14.07.2016, 18:15

Um mal deutlich zu werden und sich nicht wie dot auszuschweigen:
Wenn du in C++ Objekte anhand ihres Obertyps by-value verwendest, werden sie "zerschnitten" und es bleibt von ihnen nur das übrig, was der Obertyp enthält. Das ist nicht das, was du willst. Du willst die Objekte polymorph verwenden, das geht nur über Referenzen und Pointer.
Methoden kannst du in C++ nur dann polymorph überschreiben, wenn sie in der Basisklasse als virtual deklariert wurden. Ich glaube du solltest dir dringend ein Buch zulegen. Von welcher Sprache du auch immer kommst, C++ tut hier Dinge, die du offensichtlich weder kennst, noch erwartest und du weißt scheinbar auch nicht, wie die ganzen Dinge syntaktisch aussehen sollen. Also entweder in der Vorlesung aufpassen oder ein Buch lesen.

PS: std::list stinkt. std::vector ist sehr viel wahrscheinlicher das, was du willst.
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]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

23

14.07.2016, 18:18

Um mal deutlich zu werden und sich nicht wie dot auszuschweigen: [...]

Ich versuch halt, den Leuten immer erst eine Chance zu geben, selbst draufzukommen, bevor ich ihnen die vorgekaute Antwort hochwürge... ;)

PS: std::list stinkt. std::vector ist sehr viel wahrscheinlicher das, was du willst.

+1

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

24

14.07.2016, 18:21

Sorry, aber dann gib ihnen wenigstens entsprechende Stichworte. Einfach nur zu sagen, dass es schlecht ist, ist nicht hilfreich. Das weißt du sicher auch.
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]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

25

14.07.2016, 18:25

Okay, ich werde mir das Vorlesungs Script noch genauer durchlesen.

So funktioniert das mit den Referenzen aber auch nicht. Kann ich noch einen Tipp haben?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
std::vector<UiControl*> uiControls;

Button* button = new Button(10, 10);
(*button).caption = "Text";

uiControls.insert(uiControls.begin(), button);

for (UiControl* uiControl : uiControls)
{
    (*uiControl).draw();
}


@BlueCobold
Ich habe die Beiträge von dot nicht negativ aufgefast. In diesem Thread hilft er mir am meisten ^^

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

14.07.2016, 18:25

Sorry, aber dann gib ihnen wenigstens entsprechende Stichwort. Einfach nur zu sagen, dass es schlecht ist, ist nicht hilfreich. Das weißt du sicher auch.

Darum sag ich ja auch nicht "einfach nur, dass es schlecht ist", sondern weise erstmal auf die entsprechende Stelle hin, wo etwas faul ist und gebe dann Gelegenheit zur Reflexion über den eigenen Code. Meine Antwort oben ist genau die erste Antwort, die ich persönlich mir an seiner Stelle erhofft hätte (ich komm gern selbst auf Dinge drauf). Was genau du daran so verwerflich findest, kann ich leider nicht nachvollziehen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

27

14.07.2016, 18:26

Nee, is klar, dass du das nicht kannst. Für mich ist hier aber offensichtlich, dass er die ganzen Konzept überhaupt gar nicht kennt. Da nützt ihm so ein "Hinweis" überhaupt gar nichts.
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]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

28

14.07.2016, 18:31

Hatte das virtual vergessen in UiControl einzufügen, es funktioniert :)

Zum Thema C++ Grundkenntnisse, die Erklärungen kannte ich weitestgehend schon, irgendwie hat aber noch die Verknüpfung zwischen dem gelesenen Stoff und der Praxis gefehlt. Ich meine damit, dass ich beim programmieren gerade an die verschiedenen C++ Techniken / Eigenschaften nicht gedacht habe, als ich dann die Erklärungen in den Beiträgen gelesen habe, mir es wieder eingefallen ist.
Ich werde das C++ Script noch vertiefen. War jetzt nicht optimal lauter Anfänger Fragen in einem Thread zu haben, über Stoff den ich schon kennen sollte.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MitgliedXYZ« (14.07.2016, 18:37)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

29

14.07.2016, 18:34

Übrigens solltest du dich mal noch schlau machen über std::unique_ptr und make_unique.
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]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

30

14.07.2016, 18:39

Stimmt, die Erklärung zu std::unique_ptr und make_unique lese ich mir jetzt durch, sonst denke ich da nicht mehr dran. Die zwei Begriffe wurden mir schon mal empfohlen. Das war allerdings nicht Thema im C++ Vorlesung Script.

Werbeanzeige