⑴成员变量前缀要加i,
eg:class TCmd
{Tint iNum;};
参数要加以小写a,eg: Max(Tint aNum);
自动变量没有前缀,且要小写 eg:Tint num;
常量应以K开头,eg:const Tint KManLength = 0;
枚举成员应以E开头,而枚举是以类型开头,则应以T开头,eg:enum TName{EScoto, ETest};
⑵一个函数名后跟"L",就说明他可能发生异常退出!
eg:
CMsgSet * CMsgSet::NewL()
{
CMsgSet *self = CMsgSet::NewLC();
CleanupStack::Pop(self);
return self;
}
一个函数名后跟"LC",就说明他返回一个指针,且该指针已经被压入清除栈了
eg:
CMsgSet * CMsgSet::NewLC()
{
CMsgSet *self = new (ELeave)CMsgSet();
CleanupStack::PushL(self);//还在清除栈上,所以得带C
self->ConstructL();
return self;
}
一个函数名后跟着“D”意味着函数将删除在其中的引用的对象。
eg:
Tint ExecuteLD(Tint aResourceId);
⑶C,R,T,M类
T类:T代表typedef eg:Tint == typedef int Tint;
同时T类也可以是带内联函数的类,或者结构体,在里面他是没有析构函数的
C类:从CBase继承的类都得带C,因为可以继承CBase的虚析构函数,从而对CBase能正确的销毁,而且也重载了new运算符,而且CBase的拷贝构造和=是私有的!
R类:代表的是资源类,通常是资源句柄,R类需要CONNECT,OPEN,CREATE,CLOSE等
M类:接口类,抽象类