Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

03.10.2008, 14:25

Pointer zur eigenen Klasse beim erstellen

hallo,

gibt es denn die Möglichkeit in einer Klasse einen Pointer zu sich selbs zu bekommen, wenn diese Klasse erstellt wird:

C-/C++-Quelltext

1
2
3
4
5
6
class CTest
{
public:

    CTest *Test; //pointer zur eigenen klasse  kann z.B. hier gespeichert werden

};


meine idee ist bisher beim erstellen der Klasse dem constructor den pointer zu übergeben, aber gibt es dennnoch eine möglichkeit den pointer irgentwie anderster zu bekommen ?

Anonymous

unregistriert

2

03.10.2008, 14:43

Du kannst folgendes machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
class test
{
public:
    test (void) : handle_ (this) {}
    ~test (void) {}

private:
    const test* handle_;
};
Wird aber nicht von jedem Compiler unterstützt und ist mehr als nur unschön. Daher die Frage: Warum hast du vor, sowas zu tun?

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

3

03.10.2008, 14:43

Den Pointer als Konstruktor-Parameter zu übergeben, dürfte dir schwer fallen, da du ja auch außerhalb den Pointer erst nach dem Erstellen kennst. Ich bin mir nicht sicher, ob ich dein Problem richtig verstehe - aber genau zu diesen Zweck gibt es den this-Pointer. ;-)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
class CTest 
{ 
public: 
   // Konstruktor

   CTest()
   {
      DoSomething(this); // this ist der Zeiger zur Instanz deiner Klasse

   }
};
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

03.10.2008, 16:11

Zitat von »"unsigned long"«

Du kannst folgendes machen: [...]


aber was bringt einem das? handle_ is ja da praktisch das gleiche (nur immer const) wie der this pointer, den man sowieso hat!?

5

03.10.2008, 16:14

Re: Pointer zur eigenen Klasse beim erstellen

Zitat von »"cyby"«

hallo,

gibt es denn die Möglichkeit in einer Klasse einen Pointer zu sich selbs zu bekommen, wenn diese Klasse erstellt wird:

Es gibt den this Pointer der immer auf das Objekt zeigt, und man kann in der Klasse schon einen zeiger vom Typ der Klasse haben, brauht man z.B. um verkettete Listen zu programmieren (da hab ich es zum erstenmal gesehen).
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige