wie einen pointer kennzeichen
-
Von generellen Style Guides halte ich nicht besonders viel, da diese oft viel zu sehr auf details eingehen. Es gibt 1000 Styles und jeder hat seine Vorteile und Nachteile.
Im Endeffekt muss man sich bei Projekten eh an Style Vorgaben fremder Leute halten, selbst wenn man den (für einen persönlich) ekelhaftesten Style programmiert, den man sich nur ausdenken kann (zB. mit ungarischer Notation ;))
@Optimizer
hättest du mein Post gelesen, wüsstest du, dass ich getter und setter nicht mit get/set benenne. Nun erklär mir mal, wie ich den Namenskonflikt mit this lösen soll.In der Regel sollten Datenelemente gar nicht von außen zugänglich sein.
und was hat das mit dem zu tun, was ich geschrieben habe? Wenn diese nach außen zugänglich wären, hätte ich es ja sicher nicht nötig getter/setter zu schreiben und bräuchte auch kein _m anhängen. Findest du nicht?
-
Letzte Frage:
Wie schreibt ihr Variablenname?
Ist isInitialised besser als is_initialised?Sollte man alles klein, dafür einzelne Wörter mit nem Unterstrich ternnen?
Oder ist erste Wort klein und alle anderen Groß beginnen besser?
-
hab ich grad hier geschrieben: http://www.c-plusplus.net/forum/viewtopic.php?p=411182#411182
-
DrGreenthumb schrieb:
hab ich grad hier geschrieben: http://www.c-plusplus.net/forum/viewtopic.php?p=411182#411182
und ich hab vor deine meinung scharf gewarnt.
-
kingruedi schrieb:
@Optimizer
hättest du mein Post gelesen, wüsstest du, dass ich getter und setter nicht mit get/set benenne. Nun erklär mir mal, wie ich den Namenskonflikt mit this lösen soll.In der Regel sollten Datenelemente gar nicht von außen zugänglich sein.
und was hat das mit dem zu tun, was ich geschrieben habe? Wenn diese nach außen zugänglich wären, hätte ich es ja sicher nicht nötig getter/setter zu schreiben und bräuchte auch kein _m anhängen. Findest du nicht?
Verstehe dein Problem nicht. Bei Namenskonflikten denke ich an Situationen wie:
class Point { int x, y; void setX(int x) // Natürlich kann man auch andere Namen wählen, soll nur ein Beispiel sein { this->x = x; } }
Wo hast du bitte sonst Namenskonflikte? Wo das m_ was bringen soll?
DrGreenthumb schrieb:
Ich schreibe doch nicht int *x; statt int* x; nur weil manche Leute die Syntax nicht können.
Du sollst aus einem anderen Grund int *x schreiben:
int* x, y; // Was jetzt?!
Aber ok, da sind nicht alle meiner Meinung. Ich weiß, dass ihr das sehr Typbezogen seht, hat ja auch seine Berechtigung.
Will nur mal zum nachdenken anregen
-
Optimizer schrieb:
DrGreenthumb schrieb:
Ich schreibe doch nicht int *x; statt int* x; nur weil manche Leute die Syntax nicht können.
Du sollst aus einem anderen Grund int *x schreiben:
int* x, y; // Was jetzt?!
Schon klar, das meine ich. Wenn jemand bei der Zeile denkt y wäre auch ein Pointer, hat er Probleme mit der Syntax
Wobei das hier natürlich sehr undeutlich ist. Aber sowas schreib ich auch nicht. In so einem Fall bekommt y eine eigene Zeile.
-
Kingruedi meint eher Namenskonflikte wie die:
class Point { private: int x; public: int x() const; };
-
DrGreenthumb schrieb:
Kingruedi meint eher Namenskonflikte wie die:
class Point { private: int x; public: int x() const; };
Ok, ok. Deshalb meine persönliche Konvention:
getX(), setX()Ich sehe für m_ nach wie vor keinen Grund.
-
Wenn du getX() ausschließlich deshalb verwendest, hast du dir das "m_" gespart und musst dafür öfter "get" schreiben. Andersrum könnte ich sagen, dass es keinen Grund für "get" gibt, weil durch "m_" doch schon alles eindeutig ist...