KRYObject.h#pragma onceclass KRYObject{ template friend class KRYRefPtr; template friend class KRYWeakPtr;private: struct KRYRefCount ...
分类:
其他好文 时间:
2015-10-15 22:00:56
阅读次数:
256
教研室的项目,就是用Qt做个图形界面能收发数据就可以了,但是创建数据管理类的时候需要各种new, delete,很小心了但是内存使用量在不断开关程序之后函数会长,由于用的是gcc 4.7.* 所以好像没有shared_ptr可以用,上网查了一下原来QT也有智能指针。常用的有 QScopedPoint...
分类:
其他好文 时间:
2015-10-15 18:26:17
阅读次数:
402
一、动态内存与智能指针 1、new:在动态内存中为对象分配空间并返回一个指向该对象的指针;delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存 2、两种指针:shared_ptr和unique_ptr;还有一个weak_ptr;都定义在memory中 二、shared_ptr类:智...
分类:
其他好文 时间:
2015-10-11 19:38:46
阅读次数:
232
1. 智能指针(如标准库的auto_ptr,shared_ptr,weak_ptr,boost的scoped_ptr等)主要用于动态内存的管理,同时提供给用户与内置指针一样的使用方法,本条款主要涉及智能指针在构造与析构,复制和赋值,解引等方面的注意点,而非智能指针的实现细节.2. 智能指针的构造,赋...
分类:
编程语言 时间:
2015-10-06 23:38:32
阅读次数:
391
先可考虑下下面这个语句:1 int prioriy();2 processWidget(shared_ptr(new Widget), priority());上面这条语句看似比较正常,不会泄露资源,但是实际上并非如此。调用上面这个语句的时候基本上分成三步:1. new Widget2. 根据Wid...
分类:
其他好文 时间:
2015-10-06 19:35:20
阅读次数:
199
引用包装器 std::ref(变量)
#include
template
void com(T arg)//模板函数,引用无效,引用包装器
{
std::cout <<"com ="<< &arg << "\n";
arg++;
}
void main()
{
int count = 10;
int & rcount = count;
com(count);
std::cou...
分类:
编程语言 时间:
2015-10-02 08:59:36
阅读次数:
275
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
12.1 动态内存与智能指针
1.在C++中,动态内存的管理是通过一对运算符来完成:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。
2...
分类:
编程语言 时间:
2015-09-30 01:02:01
阅读次数:
234
根据上一次的测试,有缓存的日志类性能会更好。用到了time.h类函数,所以在linux下就要改动一下了,windows环境下写的。思路采用(参照muduo库的日志,不过认为他线程不安全,和没用缓存,就改造了下)1.有一个总的缓存,logboss,为一个恶汉模式的单例类,指针对象为智能指针,析构函数讲...
分类:
编程语言 时间:
2015-09-26 22:43:30
阅读次数:
293
学的还是不满意,对于智能指针还是有几个误区:1. 对于 unique_ptr sp1,觉得在 auto sp2 = std::move(sp1) 之后,其所管理的指针的资源会因为 sp1 的析构而导致其释放,后来发现并不是,move 操作只是管理权的移交,所以其存储的裸指针所分配的资源并不会被释放。...
分类:
其他好文 时间:
2015-09-23 13:12:41
阅读次数:
204
当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。引用计数跟踪该...
分类:
其他好文 时间:
2015-09-22 07:45:09
阅读次数:
157