Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 摘录c++;boostpython中的派生类对象_C++_Boost Python - Fatal编程技术网

C++ 摘录c++;boostpython中的派生类对象

C++ 摘录c++;boostpython中的派生类对象,c++,boost-python,C++,Boost Python,我试图在Python中获得C++派生类对象,但在Boost Python中没有找到任何帮助。问题是,这可能是因为我可以在C++中生成对象,并且该对象将在Python中访问。p> 给定 class MyClass { public: void some_method(); }; 在BOOST\u PYTHON\u模块中添加类及其方法 e、 g 这里有一些细节 如果需要基类和派生类,可以执行以下操作: class_<Base>("Base") /*...*/ ; class_

我试图在Python中获得C++派生类对象,但在Boost Python中没有找到任何帮助。问题是,这可能是因为我可以在C++中生成对象,并且该对象将在Python中访问。p> 给定

class MyClass
{
public:
    void some_method();
};
BOOST\u PYTHON\u模块中
添加类及其方法 e、 g

这里有一些细节

如果需要基类和派生类,可以执行以下操作:

class_<Base>("Base")
/*...*/
;

class_<Derived, bases<Base> >("Derived")
/*...*/
;
类(“基”)
/*...*/
;
类(“派生”)
/*...*/
;
给定

BOOST\u PYTHON\u模块中
添加类及其方法 e、 g

这里有一些细节

如果需要基类和派生类,可以执行以下操作:

class_<Base>("Base")
/*...*/
;

class_<Derived, bases<Base> >("Derived")
/*...*/
;
类(“基”)
/*...*/
;
类(“派生”)
/*...*/
;

我想我可能也有同样的问题。 我有一个
Base
类和一个
派生的
类,这两个类都是具体的,并且都暴露在python中

class Base
{
public:
    virtual ~Base() {}
};

class Derived : public Base
{};

BOOST_PYTHON_MODULE(inheritance)
{
    boost::python::class_<Base>("Base") ;
    boost::python::class_<Derived, boost::python::bases<Base> >("Derived") ;
}   
执行打印:

<inheritance.Base object at 0x0042CC70>
<inheritance.Derived object at 0x0042CC38>

我必须使用<代码> Boo::Python::PTR < /C>和C++指针。 当
Base*
指向真实的
Base
对象时,它也可以工作


也许这就是你需要的。

我想我可能也有同样的问题。 我有一个
Base
类和一个
派生的
类,这两个类都是具体的,并且都暴露在python中

class Base
{
public:
    virtual ~Base() {}
};

class Derived : public Base
{};

BOOST_PYTHON_MODULE(inheritance)
{
    boost::python::class_<Base>("Base") ;
    boost::python::class_<Derived, boost::python::bases<Base> >("Derived") ;
}   
执行打印:

<inheritance.Base object at 0x0042CC70>
<inheritance.Derived object at 0x0042CC38>

我必须使用<代码> Boo::Python::PTR < /C>和C++指针。 当
Base*
指向真实的
Base
对象时,它也可以工作


也许是你需要的。

当你说“C++派生类对象”时,你是指C++类吗?是的,派生类也是C++的,你的其他问题是否显示了你想要的?它使C++中的对象在Python中是可访问的,C++对象是一个类型,它是从一个已经暴露到BooSt.python的类派生的。实际上,在那里我创建主体并从Python访问这个对象。这是可能的。你能提供你想要完成的代码示例吗?它可以识别影响解决方案的约束。当你说“C++派生类对象”时,你是指C++类吗?是的,派生类也是C++的,你的其他问题是否显示了你想要的?它使C++中的对象在Python中是可访问的,C++对象是一个类型,它是从一个已经暴露到BooSt.python的类派生的。实际上,在那里我创建主体并从Python访问这个对象。这是可能的。你能提供你想要完成的代码示例吗?它可以识别影响解决方案的约束。有没有方法可以创建派生类的对象(派生类是C++),然后我可以在Python中访问这个对象?使用第二组类,只需说“代码> MyCalase= Test.Debug()/Case> ActuLay.我想在C++类中创建这个对象(MyCype=Test.Dead)),在Python中,你想在C++中创建一个实例,并将一个实例暴露给Python?有没有方法可以创建派生类的对象(派生类是C++),然后我可以在Python中访问这个对象?使用第二组类,只需说“代码> MyCype = Test.Debug())/Case> ActuLay.我想创建这个对象。(C++ C++类中的MyCype = Test.Dead)(不是)。