我想用Python语言创建一个对象,使用SWIG将C++实例sastifies。
假设我有一个像Example.h
这样的例子
struct iCat
{
virtual int paws() const = 0;
};
int pawGiver(const iCat& cat);
struct cat : public iCat
{
int paws() const
{
return 4;
}
};
和Example.cpp
#include "Example.h"
int pawGiver(const iCat& cat)
{
return cat.paws();
}
和example.i
/* File : example.i */
%module example
%{
#include "Example.h"
%}
%include "Example.h"
当然,上面的代码可以很好地编译。我写了下面的代码,试图用Python语言做一个iCat
,即:
import example;
class pyCat(example.iCat):
def __init__(self):
super().__init__()
def paws(self):
return 3;
z = pyCat()
example.pawGiver(z)
我想要做的事情有可能实现吗?Python类可以实现C++实例吗?我做错了什么?
发布于 2018-08-02 05:03:05
很简单。将接口修改为:
/* File : example.i */
%module(directors="1") example
%{
#include "Example.h"
%}
%feature("director");
%include "Example.h"
运行正常。
https://stackoverflow.com/questions/51641780
复制相似问题