C++ boost python无法识别多重继承
我对c++类进行了多重继承,如下所示:C++ boost python无法识别多重继承,c++,multiple-inheritance,boost-python,C++,Multiple Inheritance,Boost Python,我对c++类进行了多重继承,如下所示: struct RefCounterBase { virtual ~RefCounterBase(){} .... }; struct A : public virtual RefCounterBase{ virtual void method_a(){...} }; struct B : public virtual RefCounterBase{ virtual void method_b(){...} }; class Con
struct RefCounterBase
{
virtual ~RefCounterBase(){}
....
};
struct A : public virtual RefCounterBase{
virtual void method_a(){...}
};
struct B : public virtual RefCounterBase{
virtual void method_b(){...}
};
class Concrete : public A, public B{
virtual void method_concrete(){...}
};
'A' object has no attribute 'method_b'
以及一些基于继承RefCounterBase
template <class T>
struct SmartPtr{
...
}
看起来我的问题与上面描述的差不多,但我无法按建议的方式解决
更新:我添加了诊断打印,以确定从工厂返回的结果-结果类型为A
,并且
type(a_inst).mro()
返回[,]
-什么意思是boost在编译时不能解析正确的信息?就目前所介绍的内容而言,我不清楚为什么一个C++运行时类型为a
的对象会有method\u b()
。
type(a_inst).mro()