编程感想(随笔,记录灵感)

一、一个函数尽量不要超过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示例代码

2、解决方法:

(1)禁止使用拷贝构造函数和等号运算符重载,具体方法是把拷贝构造函数和等号运算符重载函数私有化,不用写函数体。(实现简单)

(2)自定义拷贝构造函数和运算符重载函数,给jObj2另外分配一块内存空间。(实现复杂)

三、在编写程序时,把常量、宏定义等等专门放到一个Def.h的头文件中,程序与程序有交互(通信等等)的时候,就可以通过包含Def.h头文件,来达到标准统一。

四、Windows系统下,文件名不区分大小写。如下图:

原文地址:https://www.cnblogs.com/yongqiang/p/6102766.html