Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Степанов Е.О. -> "Стиль программирования на С++ " -> 4

Стиль программирования на С++ - Степанов Е.О.

Степанов Е.О., Чириков С.В. Стиль программирования на С++ — Спб.: ГИТМО, 2001. — 48 c.
Скачать (прямая ссылка): stilprogrammivaniya2001.pdf
Предыдущая << 1 .. 2 3 < 4 > 5 6 7 8 9 10 .. 14 >> Следующая


CheckForErrors() вместо ErrorCheck(), DumpDataToFile() вместо DataFile().

Следующие суффиксы иногда могут быть полезны:

• Max - означает наибольшее значение чего либо.

• Cnt - означает текущее количество чего либо.

• Key - ключевое значение.

Пример: RetryMax - означает максимальное число попыток.

RetryCnt - означает номер текущей попытки.

Следующие префиксы иногда могут быть полезны:

• Is — используется, чтобы задать некоторый вопрос:

IsEnable(), IsWindow(), IsActive();

• Get — используется для считывания некоторого значения:

9 GetData(), GetWndRect();

• Set - используется для задания нового значения:

SetData(), SetWindowText();

• On - используется при задании обработчика событий:

OnCreate(), OnClose().

Пример:

class CNameOneTwo {

public: int DoIt(); void HandleError(); BOOL IsItPrintable();

long OnWmCreate(WPARAM wParaml, LPARAM lParam2);

const char* GetFirstName() const;

void SetSecondName(const char* pszSecName);

};

2.4. Имена функций

• Используйте те же правила, что и для имен методов классов. Пример:

BOOL AddChildWindow(HWND hChildWnd);

socket GetListenSocket(unsigned short uListenPort);

BOOL IsTransactionValid(TRANS ID trid);

2.5. Имена аргументов функций и методов класса

• Используйте те же правила, что и для имен классов.

• Используйте упрощенную Венгерскую нотацию (см. Приложение 1).

Пример:

class CTest {

public:

int RunTest(int nParaml, long lParam2);

};

2.6. Имена переменных

• Используйте упрощенную Венгерскую нотацию (см. Приложение 1 ).

2.7. Имена свойств класса

• Используйте упрощенную Венгерскую нотацию (см. Приложение 1).

10 • Имена свойств должны иметь префикс ' т_'.

• После ' т_' следует имя свойства, имеющее ту же структуру, что и имя переменных.

• ' т_' всегда должно предшествовать любым другим модификаторам, например, 'p' для указателей.

Пример:

class CNameOneTwo {

public: int VarAbc(); int ErrorNumber();

private: int m_nVarAbc; int m_nErrorNumber; char* m_pszName;

};

2.8. Имена указателей

• Имени указателя должен предшествовать модификатор 'p'.

• Символ ' *' следует помещать сразу после типа указателя, а не перед именем указателя.

Пример:

class CTest {

public:

void PrintString(char* pszString);

private: char* m_pszClassName;

};

2.9. Имена ссылок

Ссылке может предшествовать символ "r", это позволит различать модифицируемые и немодифицируемые объекты.

Пример:

class CTest {

public:

void DoSomething(StatusInfo& rStatus); const StatusInfo& GetStatus() const;

11 private:

StatusInfo& m_rStatus;

};

2.10. Имена глобальных переменных

• Используйте упрощенную Венгерскую нотацию (см. Приложение 1).

• Глобальной переменной должен предшествовать префикс "g_". Пример:

long g_lCounter; char* g_pszAppName;

2.11. Имена статических переменных

• Используйте упрощенную Венгерскую нотацию (см. Приложение 1).

• Статической переменной должен предшествовать префикс "s_"

Пример:

class CTest {

private:

static StatusInfo ms_Status;

};

static int s_nReadBytes;

static char* s_pClassName;

2.12. Имена констант

• Константы в С++ можно задать тремя операторами: const, #define, enum.

• Константы должны состоять из заглавных букв и сепараторов "_".

• Имена констант не должны совпадать, независимо от того, каким способом вы задали константы.

Пример:

#define GLOBAL_CONSTANT 5

const int nLocalConst = 4;

2.13. Имена макроопределений #define

• Константы, определяемые оператором #define, должны состоять из заглавных букв и сепараторов "_".

12 • Рекомендуется использовать префиксы, чтобы сгруппировать константы в категории.

Пример:

#define MAX(a,b) blah

#define IS_ERR(err) blah

#define ERRMSG_NO_RAM 0 #define ERRMSG_WRITE 1

#define ERRMSG_READ 2

2.14. Имена констант const

• Имена констант в перечислении задаются или только заглавными буквами, или только строчными буквами (с использованием сепаратора '_'). Смешение стилей не допускается. Предпочтительным является использование строчных букв, чтобы не смешивать константы с макросами.

Пример:

const int default_lval=0;

2.15. Имена перечислений enum

• Некоторые программисты используют enum вне класса для задания константы, в этом случае следует убедиться, что имя данной константы не совпадает с другой константой, заданной оператарами const или #define.

Пример:

enum PinStateType {

pin_off=0, pin_on

};

• Имена констант в перечислении задаются или только заглавными буквами, или только строчными буквами (с использованием сепаратора '_'). Смешение стилей не допускается. Предпочтительным является использование строчных букв для того, чтобы не смешивать константы с макросами.

• Если enum задается при определении класса, то для чтения константы необходимо указать имя класса, в котором задана enum:

Aclass::pin_off.

13 • enum можно использовать для задания неинициализированных или ошибочных состояний.
Предыдущая << 1 .. 2 3 < 4 > 5 6 7 8 9 10 .. 14 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100