A
Joe_M. schrieb:
Aber ich glaub, jeder muss da selbst seinen Weg finden.
Bei C++ ist das leider meistens so. In Delphi gibt es die folgenden Namenskonventionen:
- Alle Bezeichner sind in englischer Sprache
- benutzerdefinierte Typen beginnen mit 'T' (TComponent, TForm, TPoint)
- Felder beginnen mit 'F', Setter- und Gettermethoden mit 'Set' und 'Get' (bzw. 'Is' für Getter-Methoden von Boolean-Eigenschaften)
- Bezeichner sind immer in CamelCase
- Konstanten beginnen mit 'C' (CMaxValue), String-Konstanten und Resourcestrings mit 'S' (SMyErrorMessage)
- Exceptions beginnen mit 'E' (EAbstractError, EProgrammerNotFound)
- Methodennamen sind immer Verben (DoSomething(), FetchData(), ShutUp()), Typnamen sind immer Substantive (TObject, TCustomForm)
- Funktionsargumente können bei Bedarf mit 'A' präfiziert werden, etwa wenn ein gleichnamiges Property existiert, oder wenn die Konsistenz es erfordert
Angenehmerweise halten sich in Delphi fast alle daran, was Delphi-Code ein recht konsistentes Erscheinungsbild gibt. In reinem C++-Code bevorzuge ich andere Konventionen, aber wenn ich C++Builder und Typen aus Delphi-RTL und VCL benutze, halte ich mich auch in C++Builder an die Delphi-Namenskonventionen, und diese Vorgehensweise empfehle ich nachdrücklich. Jeder C++Builder-Programmierer kennt diese Konventionen aus der VCL, und er wird keine Schwierigkeiten haben, deine Namensgebung zu verstehen.
Damit sähe dein Code so aus:
class TPerformanceData
{
private:
float FTemperature;
float GetTemperature (void) { return FTemperature; }
void SetTemperature (float Value) { FTemperature = Value; }
public:
TPerformanceData (void);
__property Temperature = { read = GetTemperature, write = SetTemperature };
};
TPerformanceData::TPerformanceData (void)
: FTemperature (0.0)
{}
int _tmain (int argc, _TCHAR* argv[])
{
TPerformanceData performanceData;
cout << performanceData.Temperature << endl;
getch();
return 0;
}
Unabhängig davon gelten natürlich meine andernorts bereits ausgesprochenen Hinweise, daß der Einsatz von Getter- und Settermethoden unnötig redundant, darüber hinaus die Verwendung von Properties in deinem Fall nicht sinnvoll ist und die Klasse einfach so aussehen könnte und sollte:
struct TPerformanceData
{
float Temperature;
TPerformanceData (void)
: Temperature (0.0)
{}
};