[TOC] 内存使用 一般情况下有三种内存,静态内存用于保存局部static对象、类static数据成员以及函数外被定义的变量,这种对象或者变量在使用之前被分配,程序结束时销毁;栈内存用于保存在函数内的非static对象,栈对象只在程序块运行时存在,程序流离开时销毁;以及自由空间,也叫堆,用来保存动 ...
分类:
其他好文 时间:
2020-02-20 18:36:22
阅读次数:
89
测试智能指针是否为 NULL 在Qt的项目中,osg里有智能指针 然后可能和C++标准库不同 ,在判断智能指针是否为空的时候 以下来自与《More Effective C++》 ,读了觉得很有收获 文尾有我看VS2019的MSVC2017中的头文件 和 osg的 但是有一件我们做不到的事情是“发现灵 ...
分类:
其他好文 时间:
2020-02-20 15:38:40
阅读次数:
914
所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终变成十足的细节,以允许特殊接口的开发。 条款18:让接口容易被正确使用,不易被误用 许多客户端错误可以因为导入新类型而获得预防。在防范“不值得拥有的代码”上,类型系统是你的主要同盟国。 class Date ...
分类:
其他好文 时间:
2020-02-12 22:38:22
阅读次数:
111
栈里的对象 "构造完毕,请睁开眼吧!",迷迷糊糊中,听着这个声音,我睁开了眼睛,一位小哥映入眼帘。 “你是谁?我是谁?这又是什么地方?”,我的大脑一片空白。 “你是一个C++对象,这里是栈空间。我是创建你的线程,你先待着,一会儿会用到你,拜~” “唉,等一下...”,还没等我回过神,小哥已经走远。 ...
分类:
其他好文 时间:
2020-02-08 18:05:07
阅读次数:
86
一:内存泄漏的问题 考虑如下的程序 void func() { ClassA *a = new ClassA; ... delete a; } 应该使用delete语句以保证new分配的空间一定会被释放。我几乎总会忘记delete语句,尤其函数要写return语句时,更容易忘记。 另外即使你加上了d ...
分类:
编程语言 时间:
2020-02-05 11:58:43
阅读次数:
85
C++ 11提供的智能指针有:shared_ptr、unique_ptr、weak_ptr。在 头文件 memory 中。 一、new delete 直接管理内存 1、初始化 string * ps = new string // 初始换为一个空string int * pi = new int ; ...
分类:
编程语言 时间:
2020-01-28 10:49:44
阅读次数:
99
内存泄露(臭名昭著的BUG) 动态申请堆空间,用完后不归还 C++语言中没有垃圾回收机制 指针无法控制所指堆空间的生命周期 我们需要什么? 需要一个特殊的指针 指针生命周期结束时主动释放堆空间 一片堆空间最多只能由一个指针标识 杜绝指针运算和指针比较(可以避免野指针) 解决方法 指针操作符(->和* ...
分类:
其他好文 时间:
2020-01-26 22:18:36
阅读次数:
85
本文翻译自 "https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage" 介绍 cef是个基于chromium的开源项目。跟chromium项目不同,cef主要聚焦于 google chrome应用开发,cef集中于促进嵌入式浏览器在第 ...
分类:
其他好文 时间:
2020-01-17 11:28:57
阅读次数:
61
RAII(Resource Acquisition Is Initialization),也称为“资源获取就是初始化”,是C++语言的一种利用对象生命周期来控制资源的技术。 简单的说,RAII 的做法是使用一个对象,在其构造时获取资源,在对象生命期控制对资源的访问使之始终保持有效,最后在对象析构的时 ...
分类:
其他好文 时间:
2020-01-09 13:27:09
阅读次数:
72
shared_ptr shared_ptr实现的是引用计数型的智能指针,可以被自由地拷贝和赋值,在任意的地方共享它,当没有代码使用它时才删除被包装的动态分配的对象。 类摘要: template class shared_ptr { public: typedef T element_type; // ...
分类:
其他好文 时间:
2019-12-23 22:33:37
阅读次数:
89