擅长:python、mysql、java
<P>你看到的行为是因为PosithPython复制C++实例,然后与你在C++ LIB中保存的实例断开连接。这可以通过在<code>class_<T, Bases, HeldType, NonCopyable></code>实例化中更改“HeldType”来定制。<a href="http://www.boost.org/doc/libs/1_46_1/libs/python/doc/v2/class.html#class_-spec" rel="nofollow">See the Boost documentation for more information.</a>请注意,<code>HeldType</code>的默认类型是<code>T</code>,因此您的类型将由value(copied)保存。在</p>
<p>如果<code>HeldType</code>是某种智能指针(可以是<code>boost::shared_ptr</code>或{<cd6>}),那么从生命周期管理的角度来看,这是最简单的。我相信你可以使用一个原始指针,但是生命周期管理变得非常棘手(Python何时知道你的C++对象已经被破坏,同样,你的C++ LIB什么时候知道Python不再保存它的引用?)。在</p>