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

De_Struktor

unregistriert

1

03.07.2013, 14:54

Wann static wann als Instantz zugreifen?

Hi,

ich habe eine nicht ganz irrelevante Frage und zwar, möchte ich gerne näher in Erfahrung bringen, wann ich genau Member einer Klasse als "static" deklarieren sollte und wann einfach per Objekt drauf zugreifen sollte.

Also ich weiß schon mal das Methoden die als "static" signiert sind, nur per Klassenbezeichner aufgerufen werden und diese Methoden der Allgemeinheit der Klasse angehören. Jedoch frage ich mich, jetzt im Sinne meiner Spielerklasse,sollten die Methoden: Update, Placebomb und Draw statisch sein? Laut Definition von "static" würde es sich doch anbieten, ALLE diese Methoden als "static" zu definieren und nicht immer per Objekt drauf zuzugreifen, oder liege ich da falsch? Ich habe nur keine Ahnung, wann genau man auf die Methode per Objekt drauf zugreifen sollte und wann lieber als Klasse.

Wäre um ein paar vernünftige Antworten sehr dankbar :)

Mfg

De_Struktor

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

03.07.2013, 14:55

Nein, falsch. Was genau willst du denn Updaten, Zeichen oder eine Bombe platzieren lassen, wenn nicht eine konkrete Instanz?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Volker_Neff

Treue Seele

Beiträge: 249

Wohnort: Hamburg

  • Private Nachricht senden

3

03.07.2013, 15:03

So weit ich das Verstanden habe, bitte Korrigirt mich wenn ich falsch liege, da hat dein Spielerklasse nicht nur die Methoden sondern auch Variablen. Wenn du jetzt eine static Methode hast dann müssen alle Klasseninternen Variablen die durch diese Methode aufgerufen werden auch static sein

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
class Test
{
puplic:
static int Tuwas(int a);
{
int b;
b = a + Variable;
return b;
private:
static b;
};


Das heißt diese Variablen würde es auch nur einmal gebe. Das kann bei einem Spieler noch gehen wenn du aber gegen einen andern Spieler spielen möchtest würden beide auf die Gleichen Variablen wie Position zugreifen.Auf Methoden einer Spielerklassen würde ich immer übers Objekt zugreifen. Wo etwas wie static sinnvol sein kann sind zum beispiel welche die zwei übergebende Matrizen multiplizieren oder so etwas.

De_Struktor

unregistriert

4

03.07.2013, 15:06

Achso, natürlich möchte ich später auch mehrere Spieler miteinbeziehen und dann hast du recht, diese Variablen existieren dann nur einmal, das wäre ja dann quatsch, ok vielen Dank.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

03.07.2013, 18:32

Vergiss static ruhig erst mal. Solange du nicht weißt wofür du es brauchst, brauchst du es auch nicht. Man braucht es auch nur wirklich relativ selten. Denk einfach nicht drüber nach.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige