Article View: de.comp.lang.c++
Article #592Re: Gueltigkeitsbereich des this-Pointers
From: Karl-Heinz Krause
Date: Mon, 16 Oct 1995 19:36
Date: Mon, 16 Oct 1995 19:36
56 lines
1501 bytes
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-mailReferences:
<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