C++命名規範


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.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章