Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
software:programmierrichtlinien:cpp [2017-08-22 17:29] – mgehrig2 | software:programmierrichtlinien:cpp [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Programmierrichtlinien für C++ ====== | ||
- | |||
- | <box green 30% right | Quicklinks> | ||
- | **[[https:// | ||
- | </ | ||
- | |||
- | Wir verwenden die **[[https:// | ||
- | |||
- | ===== #define Guards ===== | ||
- | Wir verwenden einen an Java-Packages angelehnten Stil. | ||
- | |||
- | Beispiel für die Klasse Block mit folgenden Dateien: | ||
- | * include/ | ||
- | * src/ | ||
- | |||
- | In Java würde die Klasse dem Paket '' | ||
- | |||
- | <code c> | ||
- | #ifndef ORG_EEROS_CONTROL_BLOCK_HPP_ | ||
- | #define ORG_EEROS_CONTROL_BLOCK_HPP_ | ||
- | |||
- | ... | ||
- | |||
- | # | ||
- | </ | ||
- | |||
- | ===== Dateinamen ===== | ||
- | * Dateinamen: | ||
- | * Wie Klassen-Namen, | ||
- | * Werden mehrere Klassen in einer Datei implementiert, | ||
- | * Dateiendungen: | ||
- | * C++ Source Code: .cpp | ||
- | * C++ Headerfiles: | ||
- | |||
- | ===== Variablen Namen ===== | ||
- | * Beginnen mit Kleinbuchstaben | ||
- | * Keine Underlines | ||
- | * CamelCase | ||
- | * __Kein__ Underscore am Anfang oder Ende für Member Variablen | ||
- | * __Kein__ m_ Präfix für Member Variablen | ||
- | * __Kein__ p_ Präfix für private Variablen | ||
- | * Konstanten beginnen mit einem kleinen k (z.B. kGain). | ||
- | * Pointer beginnen mit einem kleinen p (z.B. pLength). Ausser wenn: | ||
- | * es sich um ein Array handelt | ||
- | * es sich um einen c-String handelt | ||
- | |||
- | tableName | ||
- | tablename | ||
- | table_name | ||
- | _tableName | ||
- | m_tableName -> Falsch | ||
- | tableName_ | ||
- | |||
- | |||