Zugriffsproblem

  • Ich schreibs nur kurz da ich am handy bin. Falls ihr mehr infos braucht einfach melden.


    Wie kann ich in einer singleton klasse aus einer statischen methode eine nichtstatische methode aufrufen? Über exemplar().methode() bekomm ich nen linker error

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • das singleton ist ja immer initialisiert. ich bekomm nen linker error dass der konstruktor nicht gefunden wurde. aber der ist ja logischerweise private.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • Ok, Beispielcode:


    Code
    1. void Klasse::Methode()
    2. {
    3. tuwas();
    4. }
    5. static void Klasse::MethodeStatisch()
    6. {
    7. //soll Methode aufrufen
    8. }


    Da es ein Singleton ist, ist der Konstruktor private, es gibt eine private statische member der Klasse, die über die public Methode Exemplar() initialisiert wird falls nötig und zurückgegeben wird.


    Meine Idee war jetzt folgende:


    Code
    1. static void Klasse::MethodeStatisch()
    2. {
    3. Exemplar().Methode();
    4. }


    Da bekomme ich aber einen Linker-Error, dass nicht auf den Konstruktor und Destruktor zugegriffen werden kann.


    Edit: habs inzwischen selbst gelöst. Da beide Methoden dasselbe machen sollen, habe ich die Logik in die statische Methode gepackt und aus der nichtstatischen die statische aufgerufen...

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von hangman ()

  • brauch ich von innerhalb auch Klasse:: ?


    naja, habs inzwischen ja quasi.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • 100% sicher bin ich mir nicht, aber ich meine schon. Kanns ja gleich mal ausprobieren.


    EDIT:
    Ok, braucht man nicht. Dann versteh ichs aber nicht ...


    Ok, ich hatte grad auch einen Linkererror. Das lag aber daran, dass man scheinbar statische Member vorinitialisieren muss, sprich die statische Instanz in dem Fall.

    Code
    1. Klasse* Klasse::instance = 0;


    Aber sonst war nix, ich kann alles normal nutzen.