Announcement

Collapse
No announcement yet.

Syntaxfrage zu C++

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Syntaxfrage zu C++

    Hallo,
    nun eine etwas seltsame Frage zu einem noch seltsameren Konstrukt:

    Ich habe eine Klasse, nennen wir sie A entworfen. Diese Klasse soll einen statischen Zeiger auf eine Instanz einer Klasse mit dem Namen B enthalten. Ich habe dies so gelöst

    <pre>
    class A
    {
    static B *pB;
    }
    </pre>

    Nun wollte ich eine getB()-Funktion, die schlichweb nur den Zeiger auf pB nach aussen liefern soll, für diese Klasse schreiben, die sieht so aus:

    <pre>
    static B* A::getB()
    {
    return pB;
    }
    </pre>

    Sobald die return-Anweisung im Programmcode steht maeckert der Compiler, und zwar mit folgender Meldung:

    <pre>
    error LNK2001: Nichtaufgeloestes externes Symbol "public: static class B * A:B" (?pB@A@@2PAV1@A)
    </pre>

    Weiss jemand Rat ?

    Danke im Voraus

    Bernd

  • #2
    Hi

    Versuch mal so.

    <PRE>
    class B
    {
    B();
    };

    class A
    {
    public:
    static B *pB;
    static B *getB()
    {
    return pB;
    }
    };
    </PRE>

    Gruss Marti

    Comment


    • #3
      Der Fehler entstand meines erachtens, weil es zu der statischen member variabler keine initialisierung oder definition gibt:

      oberhalb der klassen definition tuts sowas:

      B* A:B = NULL;

      ...

      Comment

      Working...
      X