Я выставляю класс дерева C ++, используя Boost.Python для python.Класс узла содержит список дочерних узлов и предоставляет метод
void add_child(Node *node)
. Класс Node становится владельцем предоставленного указателя узла и удаляет его дочерние узлы при вызове деструктора.
IЯ представляю метод add_child следующим образом:
.def("addChild", &Node::add_child)
Мой реальный вопрос: как мне сообщить Boost.Python, что класс Node становится владельцем дочерних узлов?следующий код в python:
parentNode = Node()
node = Node()
parentNode.addChild(node)
объект, на который ссылается переменная узла, дважды удаляется в конце скрипта.Один раз, когда переменная узла удаляется, и второй раз, когда удаляется parentNode.