```cpp #include #include #include //auto ptr //shared_ptr //unique_ptr //weak_ptr class Parent; //采用前置声明 using ParentPtr = std::shared_ptr; typedef st... ...
分类:
编程语言 时间:
2020-02-24 21:03:42
阅读次数:
90
```cpp #include #include #include /* //this //调用了两次析构函数, ParentPtr p(this); //智能指针出了作用域后就delete this ,析构了 //所以错了,为了解决这个问题,就需要自身的类继承于 std::enable_share... ...
分类:
编程语言 时间:
2020-02-24 21:03:10
阅读次数:
121
```cpp #include #include #include class Object; typedef std::unique_ptr UniqueObjectPtr; using ObjectPtr = std::shared_ptr; void print(const UniqueObj... ...
分类:
编程语言 时间:
2020-02-24 20:24:28
阅读次数:
73
```cpp #include #include #include //智能指针总结: /* */ void sharedPtrNotice(); class Parent; typedef std::shared_ptr ParentPtr; typedef std::weak_ptr WeakP... ...
分类:
编程语言 时间:
2020-02-24 20:10:34
阅读次数:
106
[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