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

31

24.04.2010, 23:54

Du musst eigentlich gar keine notation verwenden. Du kannst dir für bool ja auch was anderes ausdenken.
Metal ist keine Musik sondern eine Religion.

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

32

24.04.2010, 23:56

naja, du kannst das kürzel deiner engine/deines frameworks weglassen und das ganze einfach gut in namespaces packen... das ist dann auch gleich viel sauberer :)

33

25.04.2010, 00:22

Stimmt ein Namespace ist gut :) Danke!
Noch eine Frage. Ich habe schon öfters gelesen, dass die TriBase-Engine nicht gut programmiert sei,
weil sie doch nicht so objektorientiert ist. Was meint ihr dazu?

idontknow

unregistriert

34

25.04.2010, 02:12

Wo hast du das gelesen?
Mir fallen spontan die Init/Exit Methpoden ein, liegt einfach daran, dass ein Objekt nach dem Aufruf des Konstruktors eigentlich "einsatzbereit" sein sollte!! :)

Wuerde mich nicht zu sehr am Design anderer Libs/Engines orientieren. Wird dir selber noch auffallen, dass du dann ehe rin Richtung Kopie driftest!

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

35

25.04.2010, 10:33

Mir fallen spontan die Init/Exit Methpoden ein, liegt einfach daran, dass ein Objekt nach dem Aufruf des Konstruktors eigentlich "einsatzbereit" sein sollte!! :)
Solche Init/Exit-Methoden sind aber eigentlich gar nicht so schlimm!Viele Konzepte arbeiten mit solchen StartUp() und ShutDown() Funktionen.Ich verweise hier mal auf das Buch Game Engine Architecture und 3D Game Engine Design.Meiner Meinung nach , ist das aber auch eine Geschmacksfrage. :P

36

25.04.2010, 10:42

Zitat


Solche Init/Exit-Methoden sind aber eigentlich gar nicht so schlimm!Viele Konzepte arbeiten mit solchen StartUp() und ShutDown() Funktionen.Ich verweise hier mal auf das Buch Game Engine Architecture und 3D Game Engine Design.Meiner Meinung nach , ist das aber auch eine Geschmacksfrage.


Dito! Es gibt auch Bereiche in denen es besser ist eigene Modul-Startup and -Shutdown Methoden einzufügen.

37

25.04.2010, 11:59

Ein Problem bleibt aber noch.
Ich wollte die Funktionnen und Klassen wie in Davids Buch nennen, also wie er halt 'tbFunktion'.
Aber bei Batzer2D wäre das ja bFunktion. Das kommt aber mit dem Bool-kürzel durcheinander :(
Warum hast du ein Kürzel für bool? Lies vielleicht einmal diesen Post, dort habe ich gegen die UN argumentiert. ;)
Und Namensräume würde ich unbedingt verwenden, für Präfixe spricht in C++ so gut wie gar nichts.


Solche Init/Exit-Methoden sind aber eigentlich gar nicht so schlimm!Viele Konzepte arbeiten mit solchen StartUp() und ShutDown() Funktionen.Ich verweise hier mal auf das Buch Game Engine Architecture und 3D Game Engine Design.Meiner Meinung nach , ist das aber auch eine Geschmacksfrage. :P
Es gibt bestimmt Anwendungsfälle, wo eine Initialisierung nicht direkt möglich ist oder erst später Sinn macht. Allerdings stellen diese Fälle meiner Ansicht nach eher die Ausnahme dar. Das Ziel beim Design einer Klasse sollte sein, eine Invariante zu erzwingen, sodass ein Objekt zu keiner Zeit einen ungültigen Status hat.

Das Problem ist auch bei Weitem nicht nur von theoretischer Natur. Der Verzicht auf Konstruktoren verkompliziert viele Dinge. Man darf weder const-Member, Referenzen, noch nicht defaultkonstruierbare Member/Basisklassen besitzen, da jene nur im Konstruktor initialisiert werden können. Dieses Vorgehen macht es erforderlich, die verwendeten Typen ebenfalls so zu gestalten, dass sie einen Defaultkonstruktor bereitstellen, der keine Initialisierung vornimmt. Im gesamten Anwendungscode werden zusätzliche Fallunterscheidungen notwendig, um zu prüfen, ob ein Objekt bereits initialisiert worden ist und gültig ist. Bei manuell aufzurufenden Aufräumfunktionen besteht die Gefahr von Memory Leaks, Exceptionsicherheit wird nicht gewährleistet. Grundsätzlich handelt man sich viele Probleme aus C ein, die in C++ nicht mehr bestehen.

idontknow

unregistriert

38

25.04.2010, 12:12

Da waere man aber bei einem Problem, dass ich des oefterne habe und das mit dem UN-Konflikt vermutlich zusammenhaengt.

Bin mir sehr oft unsicher ueber bestimmte Dinge und entscheide dann spontan!

Waere z.B.:
Wie unterschiede ich anhand der Benennung Parameter, und interne Variablen?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
void foo(int pInt)
{
    int someint = 0;
}
// Oder

void foo2(int someint)
{
    int SomeOtherInt = 0;
}


Schreibe ich Funktionen/KLassen groß?, schreibe ich jedes Wort seperat groß?, trenne ich einzelne oerter durch einen unterstrich?, schreibe ich alles klein und trenne ich durch einen untrstrich?, verwende ich ueberhaupt unterstriche? gebe ich variablen/parametern prefixe?

Sind allg. alles Dinge die ich wohl aufgrund fehlender Erfahrung eher spontan entscheide und dann versuche durchzuziehen, wirklihc durchdacht ist das aber kaum, das Ergebnis kann mich sich dann ja vorstellen, endlos-grauenhafter Code :(.

39

25.04.2010, 12:17

Wie unterschiede ich anhand der Benennung Parameter, und interne Variablen?
Kannst du mir sagen, wozu du die Unterscheidung benötigst?

Schreibe ich Funktionen/KLassen groß?, schreibe ich jedes Wort seperat groß?, trenne ich einzelne oerter durch einen unterstrich?, schreibe ich alles klein und trenne ich durch einen untrstrich?, verwende ich ueberhaupt unterstriche?
Hier spielt es keine Rolle, was du nimmst, das ist dein persönlicher Stil. Wichtig ist, dass du konsequent bleibst.

gebe ich variablen/parametern prefixe?
Was für Variablen, welche Präfixe? Von Ungarischer Notation rate ich wie gesagt ab. Aber sowas wie myMember finde ich okay, das gehört aber auch nicht in die UN-Kategorie, da es sich nicht um Typbezeichner handelt.

Sind allg. alles Dinge die ich wohl aufgrund fehlender Erfahrung eher spontan entscheide und dann versuche durchzuziehen, wirklihc durchdacht ist das aber kaum, das Ergebnis kann mich sich dann ja vorstellen, endlos-grauenhafter Code :(.
Genau deshalb würde ich mich auf einen Stil festlegen und gut überlegen, ob ich UN-Präfixe weiterhin benutze. ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nexus« (25.04.2010, 12:22)


idontknow

unregistriert

40

25.04.2010, 12:35

Tja weiß nur nicht welchen Stil, gibts da im Internet Vorschlaege?

@UN: benutze ich nicht finds eben auch verrueckt fuer nen char pointer array (z.b.) cpaAsdf zu schrieben o.ä.

Werbeanzeige