Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

1

25.04.2004, 21:50

Umfrage Static-Members ja/nein

Soll man Static Members verwenden?

Insgesamt 12 Stimmen

17%

Ja, man sollte static Members favorisieren (2)

83%

Nein, aber wenn sinnvoll einsetzen (10)

Hallo

Hier eine kleine Umfrage:

Seid ihr der Meinung, man sollte static members vermeiden (schließlich braucht man sie nie unbedingt), oder sollte man ordentlich gebrauch davon machen?

Übrigens: in manchen anderen OOP-Sprachen gibt es keine static Members. Man kommt also theoretisch immer drum rum.
Quak

2

25.04.2004, 21:56

Bevorzugen sollte man sie nicht, da man dann erst keine Klassen Implementieren brauch ;)

Hin und wieder sind sie aber ganz vorteilhaft. Z.B. benutz ich sie immer für Konstante Membervars in der Vertex Struktur, in der ich dann das Vertex Format speichere. Oder zum zählen von Instanzen.

Verwendung finden Statische Member immer.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

3

25.04.2004, 21:59

schau mal deinen andren thread, wenn du ne einmalige Klasse haben willst, bzw eine rein static klasse, dann lohnt sich das singleton pattern "etwas" mehr.

singleton arbeitet nach dem prinzip,dass es diese Klasse nur ein einziges mal gibt, dabei wird die sache über einen static pointer und eine privatisierung des dtors gelöst.
dadurch kann man das objekt nurnoch über new erstellen, und wenn man dann den operator new überläd kann man den static pointer abfragen, wenn der null ist, kann man ne neue klasse erstellen, und ihre addresse dem static pointer übermitteln.
jeder weitere new aufruf würde zufolge haben, dass man die addresse der einen und einzigen singleton Klasse übermittelt bekommt.

desweiteren sind rein statische Klassen relativ sinnlos,weil sich der vorteil des nicht erstellen müssen durch den mehraufwand faktisch aufhebt.

4

25.04.2004, 22:09

Warum so kompliziert mit dem new-Operator? Lösungen gibt es ja immer viele. Ich bevorzuge die Lösung über die Statische Methode, die intern einen Static Variable hat, dessen Adresse oder Referenz dann geliefert wird. Noch schnellt Konstuktoren privatisieren und fertig.

Ist auch gleich ein weiteres nette Beispiel wofür man Statische Member/Methoden benutzen kann ;)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

5

25.04.2004, 22:28

Ich brauchs für Singleton.

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

6

25.04.2004, 22:41

Kann auch einfach praktisch sein, um so etwas wie globale Funktionen in einer Klasse "aufzuräumen", ohne gleich ein eigenes Namespace zu errichten. In C# sind ja schließlich alle globalen Funktionen statische Methoden!
Aber im Prinzip braucht man die nur für "bequemes" Instanzzählen.
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

7

25.04.2004, 23:42

Zitat von »"Till"«

Kann auch einfach praktisch sein, um so etwas wie globale Funktionen in einer Klasse "aufzuräumen", ohne gleich ein eigenes Namespace zu errichten. In C# sind ja schließlich alle globalen Funktionen statische Methoden!
Aber im Prinzip braucht man die nur für "bequemes" Instanzzählen.
Wenn eine Klasse nur Statische Methoden enthält kann man auch einen Namensraum aufmachen. Afaik ist es wurscht ob man nun class schreibt oder namespace. Da eine Klasse ebenfalls einen Namensraum bildet ist es in diesem Fall egal.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

8

26.04.2004, 14:18

Ich meinte es so: Aber wenn man nun 'ne Klasse hat mit non-static-members, dann ist ein static-member einfach nichts anderes als ein globales Symbol, das in der Klasse (sozusagen im Klassen-Namespace) aufgeräumt ist!
Und dazu sind static-members wirklich SEHR praktisch.
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Werbeanzeige