簡體   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