我需要一个未在堆上分配的对象的引用计数器。C++:对象的引用计数器
我需要它来实现的,不能轻易复制和破坏对象RAII机制:
class File
{
private:
int fd;
public:
File(const std::string &path) ... // opening file
destroy(); // actually closing file
File(const File &f) ... // just copying the fd
~File(); // doing nothing
}
对于这样一个std::shared_ptr
的情景通常用于:构造函数和对象的析构函数,其指针共享被调用一次。
但是在我的情况下,我宁愿避免在堆上分配对象。我需要一个类似std::shared_ptr
的shared_object
类,以便我的类的非复制构造函数和destroy
函数(在上例中)只被调用一次。
这样的事情是否存在?
@NiklasB。析构函数需要做一些引用计数。 'shared_ptr'已经拥有所有内置的逻辑。 – 2012-03-30 01:44:36
@R。马蒂尼奥:谢谢,我也意识到这一点。再看一眼代码永远不会受到伤害(: – 2012-03-30 01:46:31
)如果你不打算在堆上维护引用计数,你打算如何维护引用计数? – 2012-03-30 01:50:43