zoukankan      html  css  js  c++  java
  • c++中的const关键字的理解

    看effective c++第二版推荐使用const,少用define。今天才发现发现这远远不够。

    #define定义的常量在预处理替换,debug的时候无法打印宏的,这种常量设置是有缺陷的, const定义常量作用在编译时期,就是说编译器帮你检查有没有对const做修改,那么怎么实现一个运行时常量,目前c++中还没有提供改语法。所以const只是个协议。库提供者和使用者之间的协议,开发者和编译器的协议。所以有了const_static可以消除const的协议

    开发者和编译器的协议:

    const对象的内容,在运行时起是可以修改的。通过这个协议,编译器可以发现你代码中的一些隐形错误,就是让编译器来帮你找错

    库提供者和使用者之间的协议

    如果一个函数的参数是const类型的指针(const char *),那么表示它不会释放该指针的内容,为了防止内存泄漏,需要你自己管理指针的释放,

    如果一个函数的参数不是const类型的指针( char *),那么表示该参数可能作为输出,可能修改内容,这个时候对传入的值要做备份,传出的值复制到别的数组中。内存的管理要仔细看函数说明

    int PyArg_ParseTuple(PyObject *args, const char *format, ...)  该方法用来读取python对象的值,当args销毁的的时候也会把读取的值销毁。所以读取后马上备份

  • 相关阅读:
    回溯算法
    回溯算法
    回溯算法
    回溯算法思想
    贪心算法
    C#多线程操作界面控件的解决方案
    jQuery教程
    html css JavaScript网页渲染
    jQuery与JavaScript与ajax三者的区别与联系
    asp.net MVC中form提交和控制器接受form提交过来的数据
  • 原文地址:https://www.cnblogs.com/gaoxing/p/4242942.html
Copyright © 2011-2022 走看看