🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #592

Re: Gueltigkeitsbereich des this-Pointers

#592
From: Karl-Heinz Krause
Date: Mon, 16 Oct 1995 19:36
56 lines
1501 bytes
Am 15. Okt 1995 schrieb Roman Bartke (rob@robot.mayn.de):

> In den neueren g++-Versionen kann man im Konstruktor den eigenen
> this-Pointer an neu zu erzeugende Instanzen anderer Klassen übergeben:

> class B;

> class C
> {
> 	B* b;
> public:
> 	C() { b=new B(this); }
> [...]
> }

> Soweit ich mich erinnere, ging ss bei früheren Versionen nicht immer.

> Was sieht da der Standard (oder die Vorstufe) vor? 

Der this-Pointer eines C-Objekts hat den Typ C*. Das obige Beispiel
funktioniert also genau dann, wenn B einen Konstruktor hat, dem man
einen Parameter des Typs C* übergeben kann. Beispiel:

	class C;

	class B {
	  public:
	    B (C*);
	};

	class C {
	    B *p;
	  public:
	    C(): p(new B(this)) {}
	};

Oder in anderer Reihenfolge geschrieben:

	class B;

	class C {
	    B *p;
	  public:
	    C();
	};

	class B {
	  public:
	    B (C*);
	};

	inline C::C(): p(new B(this)) {}



Karl-Heinz Krause
Technical Details
Message-ID: <45uc8j$aiu@news00.btx.dtag.de>
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
References: <45qpdo$t2d@robot.mayn.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
From: Krause@btx.dtag.de (Karl-Heinz Krause)
Newsgroups: de.comp.lang.c++
Subject: Re: Gueltigkeitsbereich des this-Pointers
Date: 16 Oct 1995 19:36:51 GMT
Organization: Telekom Online Internet Gateway
Message-ID: <45uc8j$aiu@news00.btx.dtag.de>
References: <45qpdo$t2d@robot.mayn.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause)
X-Newsreader: Forte Free Agent 1.0.82