c++编码风格

1:类的命名规则

1:类名前缀C,成员前缀m_,静态成员前缀 sm_
  纯虚类 前缀I
/*

Describe:简单的描述

*/

#ifndef __XXXX__

#define __XXXX__

class CDog
{

int m_nMyLife;
};

#endif 
2:全局变量 g_      int g_i5MyLife;
3:全局静态变量 sg_ static int sg_i4MyLife;
4:局部静态    s_   static int s_i4MyLife;
5:数组   arr        char arrcName[12]="";  int arrnName[12]="";   arr数组前缀+类型
6:string   strName;
7:局部变量 int  i4Num;   float fNum; double dNum;
8:指针  char *pMyLife;    *要靠着p(意思是p是指针,指向int)

9:如果用"_"分隔就不要用大小写区分, 如 My_Life;
10:宏   #define MY_LIFE     全部大写  "_"隔开
11:枚举  emMyLife  eMyLife;     内容   eMY_LIFE_POS1= 1,
12:结构体 stMyLife tMyLife;
13:常量  const int nMAX_LIFE;           类型+全大写,"_"分隔,与宏的区别是加了 类型
14:名字命名 应该 形容词+名词


15:一些通用的命名
    a:互斥    int Getxxx();    void Setxxx();
              bool Addxxx();   bool Subxxx();
    b:触发事件,void Onxxxx();  比如收到客户端 操作请求,定时器,检查事件,满足检查条件
    c:检查事件  void Checkxxx(); 
    d:是否      bool Isxxx();
    e:管理类    CxxxManager{};            
    f:虚函数    加个前缀v    bool  vIsTimeOut();
    g:通知     void Sendxxx();   发送信息,单个玩家
               void Broadcastxxx();  广播指定范围内全部玩家    
    e:从集合里找  xxxx   Findxxx();   一般从集合里返回一个自定义类的时候,使用它       

2:内联函数

inline int max(int a, int b)
{
   return a > b ? a : b;
}

内联函数 不应该使用for,while之类的循环,也不应该超过10行代码,更不应该使用递归

3:前置声明

class A;    //<============这就是前置声明
clas B{

public:
    A *P;
}
=============================================================
#include "a.h"   //<====这里只能包含A的头文件 否则 A a;报错
class A
class B{

public:
    A a;   
}

问题:为什么我们前置声明时,只能使用类型的指针和引用呢?

答:那是因为指针是固定大小,并且可以表示任意的类型,
    而A a是需要了解A的大小的,不然是不可能知道给类B分配内存大小的,因此不完整的前置声明就不行,必须要包含a.h来获得类A的大小,A类改变同时也要重新编译类B。A *p;就不用重新编译B文件。

结论:
头文件包含其实是一件很烦琐的工作,因此能使用前置声明我们就用前置声明
在前置声明时,我们只能使用的就是类的指针和引用(因为引用也是居于指针的实现的)。
前置声明最大的好处就是『节省编译时间』

4:static

1:不要在头文件中声明static全局函数/全局变量,如果作用域仅在该文件也不要在.cpp中声明 非static全局函数/全局变量

.h
static int g_nNum;    // 错误的

.cpp
int g_num;            // 仅在该文件的 那么 应该  static int g_num;


2:全局static的作用域 仅在该文件头到尾

3:如果要声明需要被其他.cpp使用的如下
.h
int g_nNum ;
int getNum();

.cpp
int g_nNum =0;
int getNum(){
    return 1;
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值