zoukankan      html  css  js  c++  java
  • 编程感想(随笔,记录灵感)

    一、一个函数尽量不要超过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系统下,文件名不区分大小写。如下图:

  • 相关阅读:
    遍历及线索化二叉树
    二叉树
    程序的内存布局
    C语言一些易混淆的概念
    C语言标准库函数memcpy和memmove的区别以及内存重叠问题处理
    柔性数组
    一个基于QT简单登录对话框(带验证码功能)
    Qt中的布局管理器
    Qt中的标准对话框
    一个基于QT简单登录对话框
  • 原文地址:https://www.cnblogs.com/yongqiang/p/6102766.html
Copyright © 2011-2022 走看看