您的位置:首页 > 编程语言 > C语言/C++

C++Notes01_C++命名规则

2017-02-23 09:25 543 查看

C++Notes01_C++命名规则(Naming Rules)

CNotes01_C命名规则Naming Rules
一常见命名法

二变量的命名规则

三类类成员函数的命名

四Sample

一.常见命名法

匈牙利命名法

基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

Camel命名法

即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线,例如runFast和run_fast都属于Camel命名法。

Pascal命名法

与Camel命名法类似,不过Pascal命名法的首字母为大写字母。

二.变量的命名规则

要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。即:

  变量名=变量类型+变量的英文意思(或缩写)

详见下表:

普通变量

key typePrefixSample
shortnnCnt
unsigned shortwwCnt
intnnCnt
unsigned intuuCnt
charccName
charszszName[]——>sz(string zero)
longllCnt
unsigned longululCnt
floatffValue
boolbbEnable
doubleddValue
stringstrstrName
pointerppnCnt—->p(pointer),n(int)
arrayaanCnt[5]—a(array),n(int)
全局变量

以g_开头,本人不喜下划线,所以以g开头。如gnCnt

静态变量

以s_开头,本人以s开头。如snCnt.类的静态成员变量msCnt.

成员变量

以m_开头,本人以m开头,如mnCnt.

枚举类型/typedef

要求用枚举变量或其缩写做前缀。并且要求用大写.如:

enum EMDAYS{
EMDAYS_MONDAY;
EMDAYS_TUESDAY;
};


结构体/联合体/typedef

要求定义的类型用大写,并要加上前缀,其内部变量的命名规则与变量命名规则一致。

结构体一般用S开头:

struct SPOINT{
int nX;
int nY;
};


联合体一般用U开头:

union UPOINT{
long lX;
long lY;
};


常量

常量名由类型前缀+全大写字母组成,单词间通过下划线来界定,如:cDELIMITER, nMAX_BUFFER ….

类型前缀的定义与变量命名规则中的相同



全大写字母组成,单词间通过下划线来界定,本人习惯以DEF开头如:DEF_ERROR_UNKNOWN

三.类/类成员函数的命名

类的命名

类的名称都要以大写字母“C”开头,后跟一个或多个单词。为便于界定,每个单词的首字母要大写。类的命名推荐用”名词”或”形容词+名词”的形式,例如:”CAnalyzer”, “CFastVector” ….

成员函数的命名

保护成员函数的开头应当加上一个下划线“_”以示区别,例如:”_SetState()” ….

私有成员函数

类似地,私有成员函数的开头应当加上两个下划线“__”,例如:”__DestroyImp()” ….

虚函数

虚函数习惯以“Do”开头,如:”DoRefresh()”, “_DoEncryption()” ….

回调和事件处理函数

回调和事件处理函数习惯以单词“On”开头。例如:”_OnTimer()”, “OnExit()” ….

四.Sample

#ifndef _CSAMPLE_H_
#define _CSAMPLE_H_
#define SAMPLE_FAMILYNAME_LEN 10
int gnChildNum = 0 ;
const char *gpcFATHER_NAME = "Wang";
const int nMAX_XXX = 5 ;
class CSample
{
public:
CSample();
~CSample();
void    setName(String strName);
vritual int doSetWeight();
protected:
int    _setFamiyName(const char *pcFamilyName);
int    _getFamilyName();
private:
int    __setFirstName();
int    __getFirstName();
private:
typedef struct{
int nIncome;
int nStock;
}SProperty;
typedef enum{
EMDAYSPLAN_MEETING,
EMDAYSPLAY_APOINTMENT,
}EMDAYSPLANS;
private:
short    mnFamilyNameLen;
int      mnFirstNameLen;
char     mcSex;
char     mszFamilyName[ SAMPLE_FAMILYNAME_LEN ];
EMDAYSPLANS   meDaysPlans;
SProperty     mSProperty;
char          *mpszFamilyMember[ 3 ];
};
#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++-Notes