Article View: de.comp.lang.c++
Article #1640Re: Q: gcc 2.7.1: Aufruf einer Konstruktormethode aus einer anderen
From: Dietmar Kuehl
Date: Thu, 15 Feb 1996 02:07
Date: Thu, 15 Feb 1996 02:07
54 lines
2448 bytes
2448 bytes
Hi,
Watson (sayegh@fokus.gmd.de) wrote:
: wie kann ich ich eine Konstruktormethode aus
: einer anderen Konstruktormethode aufrufen,
: ohne dass gleich ein neues Objekt instanziiert
: wird?
Die Antwort zu der Frage ist einfach: Garnicht. Wenn Du unbedingt die
DWP Referenz haben willst, suche ich sie raus. Sonst verzichte ich
darauf...
Was tun also? Zwei Wege schaffen abhilfe. In dem Fall, den Du skizziert
hast, benutzt Du einfach ein Default-Argument:
class C
{
//...
C(string const &str = string(tmpnam(NULL)))
{
//...
}
};
Die Andere Moeglichkeit, ist eine 'initialize()' Methode zu
implementieren, die die eigentliche Initialisierung macht. Diese kann
von allen Konstruktoren aufgerufen werden. Damit sie wirklich nur von
den Konstruktoren aufgerufen wird, sollte sie 'private' sein.
Noch zwei Bemerkungen zu Deinem Beispiel:
: C(char *string) {
^^^^^^^^^^^^
Das ist *GANZ* schlecht:
1. Pointer, auch 'char'-Pointer, haben in C++ eigentlich nichts mehr
verloren und man braucht sie nur SEHR selten ausserhalb von Klassen
zu verwenden. Insbesondere fuer einen String braucht man sich nicht
zu verwenden, dafuer gibt es die Standard-Klasse 'string' (bzw.
'basic_string<...>'). Das fuehrt gleich zur zweiten Bemerkung:
2. Es gibt eine Standard-Klasse 'string'. Damit ist der Name 'string'
reserviert und es ist nicht definiert, was passiert, wenn man
'string' trotzdem fuer etwas anderes verwendet. Also laesst man es
besser bleiben, auch wenn es auf den meisten Compilern kein Problem
damit gibt.
: Antwort bitte - auch - als PM, Danke,
Kann mein Newsreader nicht. Und eh ich Aufwand mache oder gar meinen
Newsreader wechsel, lass ich es bleiben :-)
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Technical Details
Message-ID:
<31229576.0@news.uni-konstanz.de>Path:
arc1-ca.pugleaf.net!news.uni-konstanz.de!horn!kuehlReferences:
<3120B25C.2650@fokus.gmd.de>Show Full Headers
Complete Article Headers
From: kuehl@horn.informatik.uni-konstanz.de (Dietmar Kuehl) Subject: Re: Q: gcc 2.7.1: Aufruf einer Konstruktormethode aus einer anderen Newsgroups: de.comp.lang.c++ References: <3120B25C.2650@fokus.gmd.de> Organization: Fakultät für Mathematik und Informatik Reply-To: dietmar.kuehl@uni-konstanz.de X-Newsreader: TIN [version 1.2 PL2] NNTP-Posting-Host: horn.informatik.uni-konstanz.de Message-ID: <31229576.0@news.uni-konstanz.de> Date: 15 Feb 96 02:07:50 GMT Path: arc1-ca.pugleaf.net!news.uni-konstanz.de!horn!kuehl