Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » objekt einer klasse

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]
010
03.09.2003, 13:23 Uhr
0xdeadbeef
Gott
(Operator)


Kann man schon, aber das ist normalerweise nicht ratsam, weil es auf die Threadsicherheit und die Übersichtlichkeit geht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
03.09.2003, 13:23 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja geht auch. Ist aber kein guter stil. Ich würde es dann eher als static meber einer Klasse machen und Zugriffsmethoden drauf machen. Aber meinen Stil möchte ich niemanden aufzwingen...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
03.09.2003, 13:41 Uhr
~bussibär
Gast


welche negative seiten kann es außer der übersichtlichkeit haben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
03.09.2003, 14:35 Uhr
virtual
Sexiest Bit alive
(Operator)


Es geht eigentlich nur um die Sichtbarkeit von Symbolen. eine statische Member variable hat - abgesehen von der Sichtbarkeit - genau die gleichen Eigenschaften wie jede andere globale Variable auch. Also ich würde mal sagen: eine Statische Variable hat im gegensatz zu einer ordinären globalen Variable den klaren vorteil, daß sie nicht im globalen Namensraum liegt und damit eine bessere Trennung von Modulen ermöglicht.

Meine Meinung zu globalen Variablen:

Ich denke, ich würde jedem Anfänger davon abraten, sich in globale Variablen zu verlieben und daher den tip geben sie zu meiden ("Aus den Augen aus den Sinn". Die versuchung ist ja grade für Anfänger recht groß: sie verkürzen die Parameterlisten von Funktionen (denn die alternative ist in der Regel, diese Varaible als Parameter mit zu liefern), und Parameterlisten sind offenbar für Anfänger oft ein nicht zu unterschätzendes Problem.

Ich würde jedem Programmierer, egal ob Profi oder Anfänger davon abraten, globale Variablen in Komponenten zu verwenden, die man wiederverwenden möchte. Da sind sie tatsächlich eines der größten No-Nos überhaupt:
(1) Zum einen könnte jemand anders ebenfalls eine globale Variable gleichen Namens in seiner eigenen Super-Library verwendet haben, womit man dann die eigene Komponente nicht mehr mit der Super-Library zusammen verwenden kann.
(2) Globale Variablen wiedersprechen darüberhinaus dem Geheimnisprinzip, welches in der OO Welt postuliert wird. Ein Zugriff auf diese Variable kann im Zweifel nicht mehr duch deine Komponente Konrolliert werden und dann kann Dir einer ins Handwerk pfuschen. Wenn Du eine Accessorroutine hast, die Dir die Variable zurückgibt, kannst zu zB steuern, daß Zugriffe auf diese variable nie verändernd wirken sollen (const Pointer / Reference zurückgeben)
(3) Abseits der reinen theorie bzgl. Design gibt es ganz hübsche Compilerbugs, die globale Variablen schlicht weg nicht möglich machen: wenn du zB eine Klasse als globaler Variable instanziieren möchtest, in einer dynamic Library, dann erfordert das vom Linker einen speziellen Precode, der sicher stellt, daß die Constructoren aufgerufen werden, sobald die Library eingebunden wird. Leider wird dies nicht von allen Compiler/Linker Optionen unterstützt (Beispiel: HP-UX mit gcc und nativem Linker). Dh wenn man protabel sein will, muß man im zweifel eh die Finger von globalen variablen lassen, aus ganz "irdischen" Überlegungen heraus.

Allerdings finde ich es durchaus iO, in einfachen Programmen, die nicht wiederverwendet werden, globale Variablen zu verwenden, wenn dies nachhaltig die Programmstruktur vereinfachen kann. Allerdings kommt sowas bei mir äußerst selten vor, weil wenn man sich erstmal an das NoNo bzgl. globaler Variablen gewöhnt hat, dann ist deren verwendung nur schwer wieder erlernbar.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
03.09.2003, 14:42 Uhr
~bussibär
Gast


ich denke mein Programm ist so überschaubar...

ich verwende eigentlich nie globale variablen, aber in einer ausnahme geht das schon...


...so lange man keine GOTO's hernimmt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
03.09.2003, 15:42 Uhr
0xdeadbeef
Gott
(Operator)


...aber in einer Ausnahme geht das schon? Seufz...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
03.09.2003, 15:44 Uhr
~bussibär
Gast




ich hab noch nie in meinem leben gotos hergenommen unser lehrer hat uns davor gewarnt!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
03.09.2003, 16:45 Uhr
0xdeadbeef
Gott
(Operator)


Und ich warne dich jetzt vor globalen Variablen. Was war nochmal der Grund dafür, dass man keine Gotos nehmen sollte?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
03.09.2003, 16:47 Uhr
~bussibär
Gast


weil dass mit GOTO's kein strukturiertes Programmieren ist.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
03.09.2003, 17:15 Uhr
0xdeadbeef
Gott
(Operator)


mit anderen Worten, weil es unübersichtlich ist. Genau.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: