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

11

20.05.2012, 16:09

ich persönlich finde folgende schreibweise mit klammern besser:

C-/C++-Quelltext

1
2
3
void meineFunktion () {

}


ich finde es so deutlich lesbarer, zuviele klammern stören mich.

aber das ist nur mein geschmack (und ich glaube apple macht das so...)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

12

20.05.2012, 16:26

@Nacho
Größtenteils nehme ich mir das Buch C++ für Spieleprogrammierer als Vorbild.
Dort wird unter anderem die ungarische notation verwendet und auch das C vor dem Klassenamen.
Ich wollte jetzt auch nicht das du hier 100Seiten zum Programmierstil schreibst , sondern nur Tipps
wobei ich nicht wusste das mein Stil so schlecht ist weil dieser hier schon der überarbeitete ist.

Es müssten eher 1000 Seiten sein...
Der Tipp ist, dass du dir ein Buch kaufen oder eine einfachere Sprache nehmen sollst.
C++ für Spieleprogrammierer ist nur eine Einführung in eine der komplexesten Programmiersprachen überhaupt.
Mit gutem Stil kannst du anfangen wenn du die Sprache einigermaßen beherrschst.


@Overlord: Nun, das ist wirklich Geschmackssache. Ich finde seine Variante schöner und lesbarer.
ps. Wieso hat seine Variante "zuviele Klammern"?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

20.05.2012, 17:28

@dot
zu Punkt 1) und 2) Dieser Stil wird in dem Buch C++ für Spieleprogrammierer vermittelt.
Also CKlassename , m_iGeld etc.

Wie gesagt imo kein besonders guter Stil, aber ist natürlich Geschmackssache.

3) Habs mir bei Leuten abgeguckt die besser sind als ich , von smartptr hab ich nochnie was gehört^^

Von wem auch immer du dir das abgeguckt hast, guck dir besser nichts mehr von denen ab. In der Regel ist das ein Symptom von Leuten die versuchen in C++ Java zu programmieren. ;)
Mit Smartpointern solltest du dich dann mal beschäftigen.

4) init. listen sagen mir grade auch nichts

Das sollte eigentlich in jedem guten C++ Grundlagenbuch erklärt sein.

6) Ohne kommt es zu fehlern!

Das bezweifle ich. Wenn das wirklich der Fall ist, dann ist in deinem Programm irgendwo was ganz grob im Argen.



ich persönlich finde folgende schreibweise mit klammern besser:

C-/C++-Quelltext

1
2
3
void meineFunktion () {

}


ich finde es so deutlich lesbarer, zuviele klammern stören mich.

Ich finde dieser Stil ist vor allem bei verschachtelten Blöcken wahnsinnig schlecht lesbar.
Wenn beide Klammern am Zeilenanfang stehen, hat man immer eine klar definierte Linie.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (20.05.2012, 17:34)


14

20.05.2012, 17:38




@Overlord: Nun, das ist wirklich Geschmackssache. Ich finde seine Variante schöner und lesbarer.
ps. Wieso hat seine Variante "zuviele Klammern"?


da hab ich mich wohl falsch ausgedrückt, ich meinte zu viele klammern am anfang der zeile. also

C-/C++-Quelltext

1
2
3
4
5
6
7
if ( ) 
{

} else
{

}



usw..

ich hoffe ihr versteht mich :D


und mit meiner schreibweise der klammern hatte ich noch keine probleme mit verschachteltem code...erinnert mich an eine recht lange kollisionskontrollen struktur mit verdammt vielen blöcken.
aber xcode hilft beim erkennen von codeblöcken auch ziemlich gut :thumbsup:

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

15

20.05.2012, 18:43

ich persönlich finde folgende schreibweise mit klammern besser:

C-/C++-Quelltext

1
2
3
void meineFunktion () {

}


ich finde es so deutlich lesbarer, zuviele klammern stören mich.

+1
Bin auch Verfechter dieser Einrückung.
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

16

20.05.2012, 18:51

Darüber haben sich schon Programmierer gestritten bevor die meisten von uns geboren waren, also könnten wir das bitte lassen ;)

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

17

20.05.2012, 19:04

@dot

Zitat

Wie gesagt imo kein besonders guter Stil, aber ist natürlich Geschmackssache.


was gibts für alternativen? einfach das C weglassen?

Zitat

Von wem auch immer du dir das abgeguckt hast, guck dir besser nichts mehr von denen ab. In der Regel ist das ein Symptom von Leuten die versuchen in C++ Java zu programmieren. ;)
Mit Smartpointern solltest du dich dann mal beschäftigen.


habe mal eben fix gegoogelt , wird die boost.lib benötigt und gibts die in header wie iostream etc.

Zitat

Das sollte eigentlich in jedem guten C++ Grundlagenbuch erklärt sein.


Auch schnell gegoogelt und doch ist mir bekannt, allerdings nie verwendet , wird sich ändern!

Zitat

Das bezweifle ich. Wenn das wirklich der Fall ist, dann ist in deinem Programm irgendwo was ganz grob im Argen.


Also es gibt nur die CFramework hpp & cpp ^^ und die main halt, soviel kann da nicht falsch
laufen



Naja und persönlich bevorzuge ich auch

C-/C++-Quelltext

1
2
3
4
void funktion()
        {

        }


da man so ganz klar auf anhieb erkennt das alles in diesem Block zu dieser Funktion ist , finde in der
anderen Schreibweise sucht man die erste Klammer im ersten Moment.

Was ich sehr intressant finde ist das sehr viele gegen die ungarische notation sind.
Ich finde es eigentlich nicht schlecht und trägt dazu bei das einer der sich den Code anschaut
und noch nicht die Deklaration einer variable gesehen hat auf anhieb sieht iZahl = integer.

Meine Meinung halt^^
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

18

20.05.2012, 19:07

Ich finde es eigentlich nicht schlecht und trägt dazu bei das einer der sich den Code anschaut
und noch nicht die Deklaration einer variable gesehen hat auf anhieb sieht iZahl = integer.


Quellcode

1
2
3
4
kryptischerName = true; // Ist ein char
komischerName = 1.23f; // ist ein integer
abc = "Hallo Welt"; // ist ein bool
...


Finde die 3 Fehler ;)

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

19

20.05.2012, 19:17

jaja bool,float,string

aber ich sagte wenn man die deklaration NICHT gesehen hat.
Naja man kann darüber streiten^^
Aber finde es trägt zur übersichtlichkeit des Codes bei und bringt Einheitlichkeit rein! ;)
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

20.05.2012, 19:25

Wenn aus dem Namen und dem Kontext nicht klar ist, was es ist, dann ist der Name schlecht gewählt. ;)
Abgesehen davon zeigt dir eine IDE sowieso den Typ jeder Variable an.

Info am Rande: Das was heutzutage gemeinhin als "Ungarische Notation" bekannt ist (wo der der Typ im Namen vermerkt wird, heute auch bekannt als Systems Hungarian), ist aus einer Fehlinterpretation der ursprünlichen Konvention (Apps Hungarian) entstanden und Microsoft selbst rät mittlerweile in seinen eigenen Richtlinien explizit von der Ungarischen Notation ab...


@dot

Zitat

Wie gesagt imo kein besonders guter Stil, aber ist natürlich Geschmackssache.


was gibts für alternativen? einfach das C weglassen?

Das C würd ich auf jeden Fall weglassen. Microsoft hat diese Konvention afaik mit den MFC eingeführt, zu einer Zeit da es noch keine namespaces gab. Mit dem Präfix C wollte man die MFC Klassen von den restlichen Klassen unterscheiden, um Namenskonflikte etc. zu verhindern. Irgendwie hat dann wohl irgendwo mal jemand es für eine gute Idee gehalten, seine Klassen ebenfalls gleich zu benennen und dann haben es auf einmal alles so gemacht. Jedenfalls war das damals schon nicht im Sinne des Erfinders ;)


Zitat

Von wem auch immer du dir das abgeguckt hast, guck dir besser nichts mehr von denen ab. In der Regel ist das ein Symptom von Leuten die versuchen in C++ Java zu programmieren. ;)
Mit Smartpointern solltest du dich dann mal beschäftigen.


habe mal eben fix gegoogelt , wird die boost.lib benötigt und gibts die in header wie iostream etc.

Für das was du da machst brauchst du kein boost. Wenn du einen aktuellen Compiler hast (MSVC 2010+), kannst du std::unique_ptr verwenden, ansonsten gibts std::auto_ptr.

Zitat

Das bezweifle ich. Wenn das wirklich der Fall ist, dann ist in deinem Programm irgendwo was ganz grob im Argen.


Also es gibt nur die CFramework hpp & cpp ^^ und die main halt, soviel kann da nicht falsch
laufen

Dann kann es auch keine Probleme geben wenn du die Werte nicht auf NULL setzt.
Überleg mal: Die Werte werden auf NULL gesetzt während das Objekt an sich zerstört wird. Der einzige Weg wie das dein restliches Programm irgendwie beeinflussen kann, ist wenn du das Objekt weiterverwendest nachdem es zerstört wurde, was natürlich ein grober Fehler ist...

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (20.05.2012, 19:38)


Werbeanzeige