一、一个函数尽量不要超过50行,最好不超过20行,好处是立马就能看出函数功能。
二、在编写一个类的时候,需要考虑深拷贝和浅拷贝问题的时候,同时需要考虑如何处理拷贝构造函数和等号运算符重载函数。
例:
1、问题:如下情况,当执行完“Json jObj2(jObj1);”之后,jObj1与jObj2指向同一块内存空间,当fun函数执行结束后,这块内存空间将被释放2次,导致程序崩溃。
1 class Json 2 { 3 public: 4 Json() 5 { 6 //经验:防止后面的成员函数频繁判断m_root是否为null 7 m_root = cJSON_CreateObject(); 8 } 9 ~Json() 10 { 11 cJSON_Delete(m_root); 12 } 13 private: 14 cJSON* m_root; 15 }; 16 17 void func() 18 { 19 Json jObj1; 20 Json jObj2(jObj1); 21 } 22 23 int main(void) 24 { 25 func(); 26 return 0; 27 }
2、解决方法:
(1)禁止使用拷贝构造函数和等号运算符重载,具体方法是把拷贝构造函数和等号运算符重载函数私有化,不用写函数体。(实现简单)
(2)自定义拷贝构造函数和运算符重载函数,给jObj2另外分配一块内存空间。(实现复杂)
三、在编写程序时,把常量、宏定义等等专门放到一个Def.h的头文件中,程序与程序有交互(通信等等)的时候,就可以通过包含Def.h头文件,来达到标准统一。
四、Windows系统下,文件名不区分大小写。如下图: