这是我的问题:
我有两节课
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/