这是我的问题:

我有两节课

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

第二个类,在其构造函数中将此类作为参数
class B
{
B(const A var);
...
}

对于类A,我可以按照文档中的描述使用Trampolin类。如果我尝试为第二个类创建绑定(bind),则会收到以下编译错误:
error: invalid abstract parameter type

具有以下绑定(bind):
PYBIND11_MODULE(module,m)
{
py::class<A,PyA>(m,"A")
.def(py::init<>());
py::class<B>(m,"B")
.def(py::init<const A>());
}

我该如何传递这样的论点?

谢谢!

最佳答案

B签名无效-不能实例化和通过值传递抽象类。

最有可能应该是

void B(const A*);

关于python - 使用pybind11将abstact类作为参数传递为参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46345633/

10-11 05:23