如何只删除一次指针?

The*_* do 1 c++

enum Reaction{single,chain};

class X
{
X* parent_;
X* left_;
X* right_;
Reaction* reaction_;//this pointer points from every obj to the same place, cannot be static
};
Run Code Online (Sandbox Code Playgroud)

问题是:如何设计析构函数以便只删除一次reaction_?

Eri*_*rik 6

三个直接的想法:

1)必须由一个X类实例拥有reaction_?它不能被外部实体拥有,所以没有X ::〜X需要删除吗?

2)使用boost :: shared_ptr

3)使用static int实现自己的引用计数.如果你是多线程的,请记住锁定.