使用pybind11将abstact类作为参数传递给参数

时间:2017-09-21 13:44:48

标签: python c++ pybind11

这是我的问题:

我有两个班级

class A
{
A();
virtual void hello() = 0;
}

和第二个类,它将此类作为其构造函数中的参数

class B
{
B(const A var);
...
}

对于类a,我可以使用文档中描述的trampolin类。如果我尝试为第二个类创建绑定,我会收到以下编译错误:

error: invalid abstract parameter type

使用以下绑定:

PYBIND11_MODULE(module,m)
{
py::class<A,PyA>(m,"A")
.def(py::init<>());
py::class<B>(m,"B")
.def(py::init<const A>());
}

我怎样才能传递这样的论点?

谢谢!

1 个答案:

答案 0 :(得分:0)

B签名无效 - 抽象类无法实例化并按值传递。

最有可能是

void B(const A*);