繁体   English   中英

如何使用派生的Python Swigged对象访问C ++基类函数?

[英]How to access C++ baseclass functions using a derived Python swigged object?

我有一个C ++类,例如B,它是从另一个类A公开地派生的。

B类被广泛使用,并且可以在Python中访问。 这很好用,并且B类中定义的所有公共函数都可以在Python中轻松使用,而几乎不需要任何工作。

但是,在Python中创建B对象时,类A中定义的公共函数似乎不会公开,而是自动可用的。

问题是,如何获得一个Swiged Python对象的C ++类层次结构的功能?

似乎答案是在swig接口文件中包含文件的实际顺序中。

通过在派生类之前放置基类头,一切似乎都按预期开始工作。

对于任何“痛饮”的人,看到警告;

warning 401: 'AnObjectXXX' must be defined before it is used as a base class.

将为您提供一个没有预期的基类功能的python对象。

您应该毫不费力地得到它。 这是来自http://www.swig.org/Doc1.3/Python.html#Python_nn21的一些文档。

31.3.8 C ++继承

SWIG完全了解与C ++继承有关的问题。 因此,如果您有这样的课程

class Foo {
...
};

class Bar : public Foo {
...
};

这些类被包装成可反映相同继承结构的Python类层次结构。 所有常用的Python实用程序功能均可正常运行:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM