首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

百科上智能指针的例子计数//如何是++ptr->count;是不是写错了

2013-09-28 
百科上智能指针的例子计数//怎么是++ptr-count?是不是写错了?class RefPtr{friend class TestPtrint *p

百科上智能指针的例子计数//怎么是++ptr->count;?是不是写错了?


class RefPtr
{
friend class TestPtr;
int *ptr;
size_tcount;
RefPtr (int *p): ptr(p), count(1) {}
~RefPtr () {
delete ptr;
}
};

class TestPtr
{
public:
TestPtr(int *p): ptr(new RefPtr(p)) { }
TestPtr(const TestPtr& src): ptr(src.ptr) {
++ptr->count;
}
TestPtr& operator= (const TestPtr& rhs) {
// self-assigning is also right
++rhs.ptr->count;
if (--ptr->count == 0)
delete ptr;
ptr = rhs.ptr;
return *this;
}
~TestPtr() {
if (--ptr->count == 0)
delete ptr;
}
private:
RefPtr *ptr;
};
http://baike.baidu.com/link?url=afiN1XnnQuLbfSyu52jsrhvv8BUOlABwE-uhLt12QRjwRgBWPMuJProwcOSvJpXl7sizMcHhzrulNaYai1L15_

[解决办法]
将此地址rhs.ptr,向后偏移一位,读取相应count变量的值。
“-〉”前面接对象的指针,后面接对象的成员。
[解决办法]
引用:
将此地址rhs.ptr,向后偏移一位,读取相应count变量的值。
“-〉”前面接对象的指针,后面接对象的成员。
++的优先级低 
不是ptr 偏移

热点排行