1.1 類型名
首字母大寫,末尾加_T。如: class TnppCoverageArea_T{…};
1.2 1.2 變量和函數名
變量和函數名中首字母小寫,其後每個英文單詞的第一個字母大寫,其他小寫。
如: int flexPageCount;
1.3 全大寫函數名
有一類函數,它們調用普通函數,只是對普通函數的錯誤返回做一般化處理。這些函數的名字要和所包含的函數名相同,只是全用大寫字母。
1.4 宏、常量和模板名
全部大寫。
如: #define PIE 3.14 const int LENGTH = 1024; template<class TYPE_T>
1.5 指針標識符名
以p或者Ptr開頭。如: char* pName;
1.6 變量名前綴
i_ 類內數據成員(對象級成員) instance scope
c_ 類內靜態數據成員(類級成員) class scope
g_ 全局變量 global scope
f_ 文件作用域變量(靜態變量) file scope
如:
Class Message_T
{
//類內靜態數據成員
Static int c_id;
//類內普通數據成員
int i_id;
}
//全局變量
int g_id;
//靜態變量(文件作用與)
static int f_id;
1.7 全局命名空間級標識符的前綴
全局命名空間級標識符:全局或文件級變量名、常量名、宏名、類型名、函數名等
前綴:全大寫字母,長度少於3個字母
如:class UML_HashMap_T
1.8 減少全局命名空間級標識符
可將其歸放到某個命名空間、類或函數中。
1.9 命名時避免使用國際組織佔用的格式
己知的被佔用的格式
雙下劃線開頭 ISO C++、ANSI C;
包含雙下劃線 ISO C++;
單下劃線開頭 ISO C++、ANSI C;
E[0_9A_Z]開頭 ANSI C;
is[a_z]開頭 ANSI C;
to[a_z]開頭 ANSI C;
LC_開頭 ANSI C;
SIGLA_Z]開頭 ANSI C;
str[a_z]開頭 ANSI C;
mem[a_z]開頭 ANSI C;
wcs[a_z]開頭 ANSI C;
_t結尾 POSIX;
1.10 命名要本着清楚、簡單的原則
1.11 儘量用可發音的名字
// 不可發音的名字
class Ymdhms;
// 可發音的名字
class Timestamp_T;
1.12 儘量用英文命名
1.13 儘量選擇通用詞彙並貫穿始終
1.14 避免用模棱兩可、晦澀或不標準的縮寫
1.15 避免使用會引起誤解的詞彙
1.16 減少名字中的冗餘信息
1.17 建議起名儘量通俗,太專一會限制以後的擴展
1.18 名字最好儘可能精確地表達其內容
1.19 避免名字中出現形狀混淆的字母或數字
如:F0o
1.20 命名類和成員使得“object.method()”有意義
1.21 類和對象名應是名詞
1.22 實現行爲的類成員函數名應是動詞
1.23 類的存取和查詢成員函數名應是名詞或形容詞
1.24 變量名應是名詞
1.25 布爾型的名字要直觀
1.26 關於函數的左值參數和右值參數名
用lhs做左值參數的名字,用rhs做右值參數的名字。
如:
// 類的拷貝構造函數
MyC1ass_T::MyClass_T(MyClass_T const&rhs);
// 賦值函數
int operator=(String const&lhs,String const&rhs);
1.27 避免局部名和外層的名字衝突
1.28 用a、an、any區分重名參數
void MyClass_T::severity (int aSeverity)
{
i_severity=aSeverity;
}
1.29 模板類型名應有意義
// 用T1、T2不好
template〈class T1,int T2〉
class Vector_T
{
Tl i_data[T2];
};
// 用TYPE-T和SIZE就清楚多了
template〈class TYPE_T,int SIZE〉
class Vector_T
{
TYPE_T i_data[SIZE];
};
原文轉自:http://www.cnblogs.com/johnpher/archive/2012/10/15/2723727.html
原作者爲 Jiang, X.