1
我有以下C++类接口,我试图cythonize。Cython:复制构造函数
class NetInfo
{
public:
NetInfo();
NetInfo(NetInfo const& rhs);
virtual ~NetInfo();
void swap(NetInfo& rhs) throw();
NetInfo& operator=(NetInfo rhs);
...
}
这是我到目前为止。我不完全确定如何实现复制构造函数。我在Cython用户指南中没有看到任何示例。复制构造中的问题是如何从'other'(一个PyNetInfo对象)获取NetInfo对象。有任何想法吗?
cdef extern from 'NetInfo.h' namespace '...':
cdef cppclass NetInfo:
NetInfo() except +
NetInfo(NetInfo&) except +
operator=(NetInfo) except +
...
cdef class PyNetInfo:
cdef NetInfo* thisptr
def __cinit__(self, PyNetInfo other=None):
cdef PyNetInfo ostr
if other and type(other) is PyNetInfo:
ostr = <PyNetInfo> other
self.thisptr = ostr.thisptr
else:
self.thisptr = new NetInfo()
def __dealloc__(self):
del self.thisptr