Atxmega: Statischer Klassenzeiger in Klasse (auf sich selbst)

Gast #4414302
Lesenswert?
• ▲
▼
Hallo,

ich habe in meiner Klasse einen Zeiger auf eine Klasse des selben Typs 
deklariert, kann diesem aber nichts zuweisen mit der Fehlermeldung 
"undefined reference to".

Ich verwende AVR Studio 7.
1
class TestKlasse{
2
  public:
3
    static TestKlasse * pC1;
4
    Testklasse();
5
};
6

7
Testklasse::Testklasse(){
8
  Testklasse::pC1 = this;
9
}

Kann mir hier jemand weiterhelfen :)? Danke!
Persönliche Seite #4414306
Lesenswert?
• ▲
▼
Jens schrieb:
> Kann mir hier jemand weiterhelfen :)? Danke!

das ist tricky ... in c++ muss man die statische variable einer klasse 
nochmal außerhalb der klasse definieren ...

irgendwas mit hmm ...
1
class TestKlasse{
2
  public:
3
    static TestKlasse * pC1;
4
    Testklasse();
5
};
6

7
Testklasse* TestKlasse::pC1;
8

9
Testklasse::Testklasse(){
10
  Testklasse::pC1 = this;
11
}

oder so ähnlich
Gast #4414312
Lesenswert?
• ▲
▼
Statische Attribute einer Klasse müssen außerhalb der klasse einmal 
inistalisiert werden

1
class Klasse{
2
static int foobar;
3
}
4
Klasse::boobar = 42;

In deinem Fall must du den Pointer auf NULL setzen.
Gast #4414313
Lesenswert?
• ▲
▼
Heiko L. schrieb:
> Einmal schreibst du "Testklasse" und einmal "TestKlasse".

Tut mir leid, das Beispiel habe ich schnell runtergeschrieben, zur 
Veranschaulichung meines Problems, denn:

Mampf F. schrieb:
> Jens schrieb:
>> Kann mir hier jemand weiterhelfen :)? Danke!
>
> das ist tricky ... in c++ muss man die statische variable einer klasse
> nochmal außerhalb der klasse definieren ...
>
> irgendwas mit hmm ...
> class TestKlasse{
>   public:
>     static TestKlasse * pC1;
>     Testklasse();
> };
>
> Testklasse* TestKlasse::pC1;
>
> Testklasse::Testklasse(){
>   Testklasse::pC1 = this;
> }
>
> oder so ähnlich

War die Lösung!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.