Article View: de.comp.lang.c++
Article #219Re: Globale Objekte, exception aus Konstruktor
From: Ralf W. Stephan
Date: Sat, 05 Aug 1995 13:14
Date: Sat, 05 Aug 1995 13:14
39 lines
2277 bytes
2277 bytes
Ullrich von Bassewitz writes: > Ralf W. Stephan (ralf@ark.franken.de) wrote: > > Stephen Friedrich writes: > > > Das ist IMO ein generelles C++-Problem. > > Nein, das ist schlechtes Design. Globale Objekte sind Bad Things [tm] > > in C++. Benutze lokale (in main()) Objekte und übergebe sie als > > Referenzen an die Objekte, die es brauchen. > Wieso ist das schlechtes Design? Die C++ I/O-Streams benutzen z.B. globale > Objekte um sicherzustellen, dass cin, cout etc. bereits vor dem Aufruf von > main() geoeffnet werden. Ist das auch schlechtes Design? Weiß ich nicht, aber Du wirst mir sicher zustimmen, wenn ich sage, daß das ein Sonderfall ist, bzw. wann brauchst Du schon mal ein Objekt, bevor main() startet? > Das soll kein Flame sein, ich will bloss wissen, woran Du hier "schlechtes > Design" festmachst. An nichts Bestimmtem. Ich habe den Fehler gemacht, den Originalartikel des Autors nicht zu Ende zu lesen, wo er nämlich selber schreibt, daß er globale Objekte nur deswegen verwendet, weil er bestimmte application frameworks benutzt. Sorry. Bestimmte Kodierungsstile werden oft deswegen als Bad Design bezeichnet, weil sie letztendlich zu fehleranfälligem Code führen. Globale Objekte werden oft mit einer init()-Memberfunktion initialisiert (anstatt im Konstruktor), weil zB argc,argv erst später zur Verfügung steht. Ebenso ist die Einkapselung nicht mehr gegeben, wenn globale Strukturen überall im Code vorkommen; das gilt doch auch schon für C. Und ich persönlich finde es einfach schöner... > Ist das urspruengliche Problem nicht eher ein Manko von C++? (Ein Grund fuer > nochmal eine Spracherweiterung?) Bei den Exceptions wurde ja noch nicht viel (?) verändert. Vielleicht kommt ja noch eine Handler-Funktion dazu, für solche Fälle. ralf
Technical Details
Message-ID:
<1995Aug5.131455.1936@ark.franken.de>Path:
arc1-ca.pugleaf.net!ark.franken.de!ralfReferences:
<3vnvio$f95@rzsun02.rrz.uni-hamburg.de> <1995Aug4.100635.24026@ark.franken.de> <DCszrC.IqG@wuschel.ibb.schwaben.com>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!ark.franken.de!ralf From: ralf@ark.franken.de (Ralf W. Stephan) Subject: Re: Globale Objekte, exception aus Konstruktor Message-ID: <1995Aug5.131455.1936@ark.franken.de> Organization: his desk writing an article Date: Sat, 5 Aug 1995 13:14:55 GMT References: <3vnvio$f95@rzsun02.rrz.uni-hamburg.de> <1995Aug4.100635.24026@ark.franken.de> <DCszrC.IqG@wuschel.ibb.schwaben.com> X-Newsreader: TIN [version 1.2 PL2]