Article View: de.comp.lang.c++
Article #805"Uberladen des Ausgabeoperators f"ur Streams.
From: Thomas Trenz
Date: Thu, 16 Nov 1995 10:45
Date: Thu, 16 Nov 1995 10:45
68 lines
1695 bytes
1695 bytes
Hi Leute,
ich arbeite mit Exception-Klassen und habe f"ur jede Exception-Klasse
einen Ausgabe-Operator f"ur Streams geschrieben. Kann man bei dem
Operator << auch den virtuellen Mechanismus verwenden, so daß das
folgende Beispiel die "richtige" Ausgabe liefert?
class ExceptionBase
{
};
class ExceptionA
{
};
class ExceptionB
{
};
ostream & operator << (ostream & os, const ExceptionBase &b)
{
os << "Base" << endl;
}
ostream & operator << (ostream & os, const ExceptionA &b)
{
os << "ExceptionA" << endl;
}
ostream & operator << (ostream & os, const ExceptionB &b)
{
os << "ExceptionB" << endl;
}
Jetzt der C++-Code:
void Testfunktion (int Parameter) throw (ExceptionBase)
{
switch (Parameter)
{
case 0 : throw ExceptionA();
case 1 : throw ExceptionB();
}
}
int main (int argc, char *argv[])
{
try
{
Testfunktion (1);
}
catch (ExceptionBase &e) { cout << e << endl; }
}
Ausgabe:
Base
Ist es möglich, das Programm so zu modifizieren, daß die Fehlermeldung
des abgeleiteten Typs ausgegeben wird?
Also ist es möglich irgendwie eine Art virtuellen Ausgabeoperator zu
schreiben?
Vielen Dank schon mal...
Technical Details
Message-ID:
<48f4mh$3h6@Dortmund.Germany.EU.net>Path:
arc1-ca.pugleaf.net!Dortmund.Germany.EU.net!news-internShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!Dortmund.Germany.EU.net!news-intern From: trenz@ids-scheer.de (Thomas Trenz) Newsgroups: de.comp.lang.c++ Subject: "Uberladen des Ausgabeoperators f"ur Streams. Date: Thu, 16 Nov 1995 10:45:05 GMT Organization: Customer of EUnet Germany; Info: info@Germany.EU.net Distribution: world Message-ID: <48f4mh$3h6@Dortmund.Germany.EU.net> Reply-To: trenz@ids-scheer.de NNTP-Posting-Host: zeus.ids-scheer.de X-Newsreader: Forte Free Agent v0.55