一个简单的point坐标类 class Point {public: Point():xval(0),yval(0){} Point(int x,int y):xval(x),yval(y){} int x()const { return xval; } int y()const { return ...
分类:
编程语言 时间:
2017-11-14 11:26:09
阅读次数:
234
当类里面有指针对象时,由于浅拷贝是由两个对象指向同一块内存,存在崩溃的问题!为了解决,所以引入了深拷贝、写时拷贝。1.浅拷贝(新开辟一个指针做引用计数)//浅拷贝+引用计数(指针)
classString
{
public:
String(char*str="")//缺省时给定\0
:_str(newchar[strlen(s..
分类:
其他好文 时间:
2016-03-24 18:39:55
阅读次数:
225
boost::intrusive_ptr一种“侵入式”的引用计数指针,它实际并不提供引用计数功能,而是要求被存储的对象自己实现引用计数功能,并提供intrusive_ptr_add_ref和intrusive_ptr_release函数接口供boost::intrusive_ptr调用intrusi...
分类:
其他好文 时间:
2015-03-10 17:09:18
阅读次数:
149
使用OpenSceneGraph会经常见到这样的代码
osg::ref_ptr nodeRptr = new osg::Node;
osg::ref_ptr即为Reference counted objects 每次使用时自动递增,用完后自动递减
当最后一个 计数器变为0,对象自动销毁。
ref_ptr模板类型继承自Referenced类,Referenced类有三个基本函数:...
分类:
其他好文 时间:
2015-03-01 11:58:21
阅读次数:
189
代理模式在所需对象和用户代码之间增加了一层对象,这个对象被称为代理。用户代码只需要直接操作代理对象即可。著名的代理模式的例子就是引用计数指针对象,它使得我们对真实对象的操作都需要经过引用计数指针对象。下面是用C++写的一个运用了代理模式的例子。
#include
#include
using namespace std;
// 作为接口的抽象基类
class Subject {
pu...
分类:
其他好文 时间:
2014-07-21 23:27:29
阅读次数:
247
如前面内存泄露中所讲的,引用计数指针可以被复制。因此,一个智能指针的几份拷贝可以指向同一个对象。这就产生了由哪份拷贝负责删除它们共同指向的对象这个问题。答案是这组智能指针中最后消亡的那个将删除它所指向的对象。这类似于家居规则:“最后一个离开屋子的人负责关灯。”为了实现这个算法,这些指针共享一个计数器,记录有多少个智能指针引用同一个对象,即“引用计数”这个术语的由来。引用计数的应用范围很广:这个术语...
分类:
其他好文 时间:
2014-07-14 18:43:14
阅读次数:
284