0
我正在嘗試爲C++類的集合構建一組Lua綁定,但一直在玩弄Python以查看是否會獲得更好的結果。在任何一種語言中,綁定似乎都可以工作,但是,當我初始化一個包含其他類成員的類的實例時,這些數據成員似乎不能保證被初始化。用於python/lua的Swig綁定不會正確初始化成員數據
例如,走班:
class MyClass : public ParentClass // (Obviously) not a real class
{
public:
SomeClass sc;
OtherClass oc;
};//Note that none of my classes have a constructor or destructor; this is by design.
當我生成綁定像這樣一類的,我能夠執行類似的語句:
var = module_name.MyClass()
print(var.sc.x, var.sc.y)
我得到預期的垃圾值打印到屏幕上。但是,如果我嘗試打印任何有關OtherClass的實例,就會明顯地發現它是「stubbed out」 - 在Lua中它根本就沒有metatable,而在Python中,dir(var.oc)只給出默認的函數。但是,如果我再做:
var.oc = module_name.OtherClass()
超頻元表/目錄(OC)調用是什麼,我會希望和預期是可以治療的。
任何人都可以提供任何洞察爲什麼只有一些成員數據初始化?
謝謝!