C++ Structs: Get und Set
lima-city → Forum → Programmiersprachen → C/C++ und D
antworten
bau
code
eigenschaft
kapsel
kapselung
klasse person
korrekte stil
meinung
minimale klassen
perfektionist
person
privaten variablen speichern
set
setter
string
tun
verb
vorname
zweite frage
-
Hallo Leute,
aus C# (und anderen Sprachen) kennt man ja Structs: Minimale Klassen mit ein paar Eigenschaften. Datenkapselung ist da nicht notwendig.
Wenn ich nun nach C++ gehe ist eine Struct identisch mit einer Klasse, deshalb wollte ich bei erfahrenen C++lern nachfragen, wie ihr es mit Datenkapselung handhabt: Ihr habt beispielsweise eine Klasse Person. Diese besteht nur aus den öffentlich zugänglichen Eigenschaften Vorname, Name und Telefonnummer. Macht ihr diese Eigenschaften dann private und kapselt mit getVorname, setVorname, ... oder lasst ihr diese Eigenschaften public?
Freue mich auf Antworten.
Lg
mator -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der korrekte Stil im Sinne der Kapselung wäre die Member-Variablen privat zu halten und diese nur über Getter und Setter zugänglich zu machen bzw. komplexere Methoden mit definierter Signatur zu schreiben, welche ihre benötigten Daten in privaten Variablen speichern.
Variablen public zu machen halte ich für unschön.
Beitrag zuletzt geändert: 6.3.2013 16:12:28 von schrotti12 -
Gut, dann werde ich alles kapseln. Dazu noch eine zweite Frage: In C# werden die Getter und Setter nach dem Variablennamen benannt. Was ist aber in C++ die übliche schreibweise? Also mit get/set vor dem Methodennamen oder ohne?
Also
class Person { public: std::string getVorname(); private: std::string Vorname; }
oder
class Person { public: std::string Vorname(); private: std::string Vorname; }
Beitrag zuletzt geändert: 6.3.2013 17:22:28 von mator-kaleen -
Methodennamen, so baue ich sie, sollten immer mindestens ein Verb enthalten, denn sie TUN etwas, und du so direkt ablesen kannst, was. Nur ein "Vorname" könnte setter oder getter sein, oder gar was generisches, was beides ist.
Mindenstens ein Verb im Methodenname, und am liebsten noch ein Objekt, das beschreibt, was da was tut, oder was bearbeitet wird. Längere aber strukturierte Methodennamen können helfen, den Code einfacher verständlich zu machen, sodass das einarbeiten auch leichter wird. :)
Liebe Grüße -
Der Meinung bin ich eben auch, aber da in der C# Ecke das alles eben ein wenig anders ist, wollte ich als Perfektionist mir noch eine andere Meinung einholen.
Nochma danke für die Antworten
Lg
mator -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage