2012-11-17 78 views
1

我在想,如果這是正確的動態分配型的boost ::蟒蛇::對象的對象。蟒蛇::提高::對象分配

boost::python::object * obj = new boost::python::object();

會不會有什麼問題?內部參考計數呢?

謝謝!

+0

使用std :: shared_ptr的或std ::的unique_ptr引用計數。 – jt234

回答

2

docs升壓::蟒蛇::對象明確指出析構函數遞減引用計數和賦值運算符遞增它。雖然沒有明確說明,但從這些明確聲明和關於構造函數Constructs an object managing a reference的聲明中,我們可以推斷構造函數也會增加引用計數。

由於新調用構造函數,只要刪除被稱爲上的指針,以確保析構函數被調用時,不會有與內部引用計數的任何問題。

還要注意的是如何使用的std :: shared_ptr的或std ::的unique_ptr引用計數的評論是有點誤導。 std :: unique_ptr沒有引用count,而是移動/移動assigning導致所有權從實例A傳遞到實例B和實例A,從而變得無效。 Additinally,性病:: shared_ptr的不會修改一個boost ::蟒蛇::對象維護的內部引用計數,而是將管理有關的boost ::蟒蛇::對象指針的生存期的單獨的引用計數。

+0

謝謝!爲你的接吻! – JLSM