Datei für Konstanten anlegen
-
@daniel sagte in Datei für Konstanten anlegen:
@Swordfish In etwa so war auch meine Ausgangssituation, nur mein Problem ist, dass ich sf::Font font noch in der nächsten Zeile verändern möchte. Und dann kann ich ja kein const benutzen. Es soll also Konstant sein, nachdem ich es kurz verändert habe
Das Problem ist bereits gelöst, oder kannst du einen Grund nennen, warum du keine Funktion aufrufen kannst statt eine Konstante zu verwenden?
-
@Finnegan Super, Vielen Dank! Funktioniert genauso wie es soll. Das mit Pi werde ich machen
const sf::Font font = []{ ... }();
Kannst du vieleicht noch kurz erklären, was hier genau gemacht wird? Also warum die Eckigen Klammern davor und Runden Klammern danach?
@manni66
Ja, jetzt werden sie nur einmal geladen
-
@daniel sagte in Datei für Konstanten anlegen:
@Finnegan Super, Vielen Dank! Funktioniert genauso wie es soll.
Dann schau dir mal an, wie oft die Fonts jetzt geladen werden, wenn du den Header mehrfach verwendest.
-
@daniel sagte in Datei für Konstanten anlegen:
Kannst du vieleicht noch kurz erklären, was hier genau gemacht wird? Also warum die Eckigen Klammern davor und Runden Klammern danach?
-
Ein Font ist keine Konstante, sondern eine Ressource, und unterscheidet sich von ein paar vordefinierten Farben oder Zahlenwerten.
Dafür könntest Du einen "ResourceHolder" o. Ä. verwenden, welcher die Ressourcen (Fonts, Texturen, Sounds) lädt und Zugriff darauf bietet. Für ein Beispiel würde ich empfehlen:
https://github.com/SFML/SFML-Game-Development-Book/tree/master/02_Resources
Wenn Du jetzt nur ein einziges Font brauchst ist das vielleicht auch overkill. Aber ich rate davon ab Ressourcen mit Konstanten zu vermischen.
-
Also nach meinem Gefühl würde ich mir hier eine Ressource-Manager-Klasse bauen, oder eine in den Weiten des Internets finden und dann eine static-Instanz erzeugen. Scheiß auf Const.
-
@It0101 Also ein Meyers-singleton.
-
@It0101 sagte in Datei für Konstanten anlegen:
Scheiß auf Const.
EDIT: OK, im Kontext vermutlich gerechtfertigt. Trotzdem reisst es mich wenn ich sowas lese. /EDIT
-
@hustbaer sagte in Datei für Konstanten anlegen:
@It0101 sagte in Datei für Konstanten anlegen:
Scheiß auf Const.
Was ist denn jetzt der Vorteil einer Const-Variante, die es rechtfertigt 5 Tage darüber zu debattieren ( 5PT ?
)
-
@It0101 Ja in diesem Fall hast du wohl Recht mit dem was du sagen wolltest. Sorry. Mich hat's halt ein wenig gerissen auf grund der Formulierung.
ps: Hat
sf::Font
überhaupt mutable state?
-
@hustbaer sagte in Datei für Konstanten anlegen:
@It0101 Ja in diesem Fall hast du wohl Recht mit dem was du sagen wolltest. Sorry. Mich hat's halt ein wenig gerissen auf grund der Formulierung.
Ich bin auch ein "Const"-Freund und setze es überall ein, wo es möglich ist. const-correctness reduziert die Fehlerquote!
Aber in dem Fall ist aus meiner Sicht ein klassischer Ressource-Manager nicht unbedingt eine schlechte Idee