[ fromfile: style.xml id: style ]
C++ is a powerful language that supports many different programming styles. The coding style used in most Qt programs is not “pure” C++. Instead, it uses combination of macros and preprocessor trickery to achieve a higher-level dynamic language that more closely resembles Java or Python than C++. In fact, to take full advantage of Qt's power and simplicity, we tend to abandon the Standard Library entirely.
We find there are certain aspects to “Qt programming style” that are worth emulating, and they are summarized here. For a more complete guide, see [qtapistyle] and [kdestyle].
Class names begin with a capital letter: class Customer
Function names begin with a lowercase letter.
Although permitted by the compiler, periods, underscores, dashes, and funny characters should be avoided whenever possible (except where noted below).
Multi-word names have subsequent words capitalized:
class FileTagger, void getStudentInfo()
for example.
Constants are capitalized, preferably enum values in a class scope. Global constants and macros are usually in CAPS.
Each class name should be a noun or a noun phrase: class LargeFurryMammal for example.
Each function name should be a verb or a verb phrase: processBookOrder() for example.
Each bool variable name should produce a reasonable approximation of a sentence when used in an if() statement: bool isQualified for example.
For data members, we use a common prefix:
member name: m_Color, m_Width - prepend lowercase m_
static data members: sm_Singleton, sm_ObjCount
For each attribute, we have naming conventions for their corresponding getters/setters.
Non-boolean getters: color() or getColor()
[15]
Boolean getters: isChecked() or isValid()
setter: setColor(const Color& newColor)
A consistent naming convention greatly improves the readability and maintainability of a program.
[15] The latter is Java style, the former is Qt style. Both conventions are widely used. Try to be consistent in your code, even if you find this book is not.
| Generated: $Date: 2008-06-09 14:08:23 -0400 (Mon, 09 Jun 2008) $ | © 2008 Alan Ezust and Paul Ezust. |