viele objecte, eine klasse



  • ich habe eine klasse geschrieben (die hauptklasse einer game-engine).
    diese klasse wird in allen bereichen der engine genutzt, aber ich hab ein paar probleme mit zugriffsrechten, daher meine frage:

    wenn ich eine klasse mache, in der alle methoden und alle member variablen static sind, dann kann ich doch für jede headerdatei in meinem projekt ein neues obkect erstellen - muss also nicht immer pointer weiterreichen, sondern lasse einfach alle objecte an den gleichen membervariablen rumbasteln.

    die klasse wäre dann doch auch nur einmal im arbeitsspeicher, weil alle objecte die gleichen member variablen und die gleichen funktionen benutzen, oder?



  • gamer8o4 schrieb:

    wenn ich eine klasse mache, in der alle methoden und alle member variablen static sind, dann kann ich doch für jede headerdatei in meinem projekt ein neues obkect erstellen - muss also nicht immer pointer weiterreichen, sondern lasse einfach alle objecte an den gleichen membervariablen rumbasteln.

    Wenn alles in deiner Klasse static ist, dann ist es sinnlos davon ueberhaupt Objekte zu erstellen. Dann kannst du einfach auf alle Membervariabeln und Memberfunktionen zugreifen ohne ein Objekt zu erstellen.

    Suchst du vielleicht so etwas wie das Singleton Pattern (Google hilft da)? Soweit ich weiss hat sich das Singleton Pattern nicht immer bewaehrt, so dass es heute auch manchmal als Antipattern bezeichnet wird.

    gamer8o4 schrieb:

    die klasse wäre dann doch auch nur einmal im arbeitsspeicher, weil alle objecte die gleichen member variablen und die gleichen funktionen benutzen, oder?

    Die Entscheidung mehrere Objekte einer Klasse zu erstellen oder alles statisch zu machen sollte (zumindest in den meisten Faellen) nicht davon abhaengen ob es etwas mehr oder weniger Speicher braucht sondern viel mehr ob du fuer dein Design mehrere Objekte brauchst oder eine statische Klasse.
    Ein Objekt braucht uebrigens nicht mehr Speicher, wenn es mehr Memberfunktionen hat 😉



  • Das waere das Monostate Design Pattern.

    Eine andere alternative ist das Singleton Design Pattern.



  • ja, ich glaub ich mach das jetzt ohne klassen, aber es würde gehen, oder? (schließlich gibts da auch nen namen für 😉 )



  • und wie geht das mit diesem singleton - beispiel?



  • gamer8o4 schrieb:

    und wie geht das mit diesem singleton - beispiel?

    http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster)#Implementierung_in_C.2B.2B



  • gamer8o4 schrieb:

    und wie geht das mit diesem singleton - beispiel?

    Du willst eine GameEngine schreiben aber schaffst es nicht nach dem Singleton Pattern zu googeln? 🙄



  • sieht gut aus, dann mach ich es doch mit klassen, dann kann ich wenigstens auch private variablen benutzen, was ja ganz praktisch ist, wenn man nicht will.dass.die nutzer der engine irgenteinen scheiß machen und es ist übersichtlicher


Anmelden zum Antworten