【问题标题】:Passing abstact classes as parameters as parameter with pybind11使用 pybind11 将抽象类作为参数作为参数传递
【发布时间】:2017-09-21 13:44:48
【问题描述】:

这是我的问题:

我有两节课

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

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

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

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

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>());
}

我怎样才能传递这样的参数?

谢谢!

【问题讨论】:

    标签: python c++ pybind11


    【解决方案1】:

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

    应该是这样的

    void B(const A*);
    

    【讨论】:

      猜你喜欢
      • 2015-04-16
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      相关资源
      最近更新 更多