看板 Python 關於我們 聯絡資訊
(程式沒有 Boost,也沒有 swig 可以使用。) 問題大概是這樣子,有一個 C++ Class,像是 ----------------------------------------------------- class Base { public: virtual void VFTest() { printf( "VFTest from C++\n" ); } }; ----------------------------------------------------- 參考官網的教學,把 class Base 寫的有點像 C Language, 現在可以做到在 Python 裡 import,同時 b = Base() b.VFTest() 也可以秀出 "VFTest from C++",(參考官網的教學而得), 但如果今天有一個 Python Class,像是 ----------------------------------------------------- class Derived( Base ): def VFTest( self ): print( "VFTest from Python" ) ----------------------------------------------------- C++ 的主程式要如何 call VFTest() 才能發揮 virtual function 的本能,從 C++ 穿過 Python,去秀出 "VFTest from Python" 呢? (會是要自己弄 virtual table 嗎?,那 Python 的 Function pointer 要從哪拿到?) Thanks -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.32.18
uranusjr:You can't do that... 08/07 17:23
uranusjr:只能把 C/C++ 掛到 Python 程式中, 沒有倒過來的 08/07 17:24
photon3108:所以 Boost 和 SWIG 沒有提供這個功能,是嗎?,我還沒 08/07 21:12
photon3108:仔細看過。 08/07 21:12
uranusjr:Boost 有, Swig 不熟不過我猜應該也有吧 08/07 21:19
timTan:boost 沒有提供吧? 好像沒有看過跟C++整得這麼緊密的工具。 08/07 22:28
timTan:或許可以看看Cython 08/07 22:28
timTan:uranusjr 就如你所說,boost 是讓 Python可以用C++. 08/07 22:29
timTan:沒有反過來~ 08/07 22:30
uranusjr:Boost.Python 裡有個 extract 不行嗎?其實我也沒用過 08/07 23:04