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

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

31

31.08.2010, 17:01

Warum widerspricht das dem Gedanken der Objektorientierung?

@Wollnashorn: Pervers, na ja, wie schon gesagt eher Gewohnheit ;)
Und für die Übersicht schon recht hilfreich.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

32

31.08.2010, 17:33

Nöö... Membervariablen fangen mit einem Großbuchstaben an, alle anderen variablen mit einem kleinen. Konstanten werden komplett groß geschrieben und wenn ich mal irgendwo globale Variablen benutzen würde, würden sie gVariable heißen...

Für den rest ist ein aussagekräftiger Name (isActive vs. active zb) und eine vernünftige IDE da...

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

33

31.08.2010, 18:44

Hat in C++-Code meiner Meinung nach nichts zu suchen :P

Was hat denn die Programmiersprache plötzlich mit Variablennamen zu tun?^^


Aber ich denke in dem Forum sieht man ganz gut, wie jeder seine eigenen Gewohnheiten hat :P

@crische5:

Warum bricht es die Objektorientierung, statt "name" "m_Name" oder "m_pName" zu schreiben?
WIP Website: kevinheese.de

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

34

31.08.2010, 19:09

Ich finde, dass es anderen, die den Code lesen und verstehen sollen, viel bringt. Einem selbst bringt es nicht viel, da man ja weiß (zumindest wissen sollte ^^ ), was man in seinen Variablen speichert.

Ja es ist Geschmackssache, wenn man sich es angewöhnt hat, merkt man den Mehraufwand nicht mehr und macht es praktisch automatisch. Ich mache eigentlich das volle Programm an ungarischer Notation, nur so was wie DWORD *m_pdwX ist mir auch zu dumm.

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

35

31.08.2010, 19:42

Nein, macht den Code unlesbar. Eine Konvention über groß/klein-schreibung reicht vollkommen aus.

In Python ist es übrigens vorgesehen "private" Member mit __ (zwei _) zu beginnen, siehe: http://docs.python.org/reference/lexical…-of-identifiers

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

36

31.08.2010, 20:02


In Python ist es übrigens vorgesehen "private" Member mit __ (zwei _) zu beginnen, siehe: http://docs.python.org/reference/lexical…-of-identifiers

So weit ich das noch weiß, war ursprünglich für Python geplant, dass jeder selbst weiß, was als Privat und was als Public vorgesehen ist.
Mir wurde von dieser Konvention abgeraten, da dies den Zweck der Sprache verfehlen würde, aber ich nutze es auch zum Teil. Ist auch nicht viel Umgewöhnung, wenn man wie ich eh private Member mit einem Unterstrich kennzeichnet :D
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

37

31.08.2010, 20:14

Datentypen im Namen einer Variablen sind Code-Smell. Poll-Antwort: Nein.
Abgespeckt aber durchaus zu gebrauchen, wie eben Notationen für Attribute (aka Member-Variablen) oder in C/C++ eventuell auch Pointer-Typen.
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]

38

01.09.2010, 10:27

Hallo
Warum widerspricht das dem Gedanken der Objektorientierung?


Weil man eben oft eigene Datentypen entwirft und man sich dann eigene Präfixe ausdenken müsste. Das wird in der Regel aber nicht gemacht, was ich auch sehr verständlich finde, weil die Abkürzungen ja eh keiner kennen würde. Wenn man nun aber nur bestimmte Typen mit einem Präfix versieht, kann man es IMHO auch gleich sein lassen. Ich weiß auch gar nicht, warum es so wichtig sein sollte den Typ zu kennen. Macht man ja im Deutschen auch nicht, dass man in einem Satz vor jedes Wort die Wortart schreibt. Wenn man bedenkt, dass Variablen einen möglichst kleinen Scope haben und man eindeutige Namen vergibt, hat man das Problem nicht und wenn doch, hilft die IDE. Ich sehe absolute gar keinen Grund für UN. Da ich fast ausschließlich mit C# arbeite und die dortigen Konventionen beachte, hat sich das Thema erledigt. Ich benutze nichts. Kein _, kein p_, kein g_. Eine große Ausnahme gibt es allerdings: I vor Interfaces. Das ist eben Konvention.

chrische

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

39

01.09.2010, 10:48

Zitat

Weil man eben oft eigene Datentypen entwirft und man sich dann eigene Präfixe ausdenken müsste

Eigene Datentypen? Du meinst Klassen oder Aliase von Datentypen wie unsigned short-> UINT8?
Wenn ich das richtig verstehe, meinst du, man müsste dann dafür auch wieder einen neuen Präfix entwickeln, wie "ui" oder "ui8" (als Beispiel).
Aber das macht es mir immer noch nicht verständlich, warum das gegen die Objektorientierung spricht, bei der Objektorientierung geht es doch hauptsächlich darum, verwandte bzw. zugehörige Daten zusammen zufassen, zu kapseln und um die Wiederverwendbarkeit. Oder gibt es da verschiedene Ansichten? :D
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

40

01.09.2010, 10:53

Quellcode

1
PushButton button;


Die Variable button hat kein Präfix... welchen nimmst du jetzt? Es ist kein Pointer, keine globale, keine statische, kein primitiver Datentyp, sondern eben eine selbsterstellte Klasse für einen button...
Gut jetzt kann man btnn sagen, aber was machst du mit variablen der Klasse Entity, oder Texture, oder Tile?

Werbeanzeige