我想在Python中创建一个使用SWIG破坏C ++实例的对象。
鉴于我有一个像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 ++实例吗?我在做什么错了?
答案 0 :(得分:3)
很简单。将界面修改为:
/* File : example.i */
%module(directors="1") example
%{
#include "Example.h"
%}
%feature("director");
%include "Example.h"
运行正常。