2009-05-27 6 views
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"ということが明らかになります.Luaにはmetatableが全くなく、dir(var.oc)を実行するPythonではデフォルトの関数しかありません。しかし、私はそれから行う場合:

var.oc = module_name.OtherClass() 

OCのメタテーブル/ DIR(OC)の呼び出しは、私が望んでいるだろうと予想されるとして、それを扱うことができるものです。

会員データの-some-のみが初期化されている理由については、誰でも知ることができますか?

ありがとうございます!

答えて

0

この問題は、私が持っていた別の問題に関連していました。解像度はthis threadを参照してください。

関連する問題