2012-04-06 5 views
0

私がboost.pythonまたはpyplusplusを使用している場合、intポインタまたはクラスのメンバ変数であるポインタをどのようにラップするのですか?例えばboost.python/pyplusplusでintポインタメンバー変数を折り返す

、どのように私は次のクラスからxをラップします:あなたは、Pythonへのクラスとプロパティを公開する必要が

class Foo{ 
    int * x; 
} 

答えて

-1

まず。

#include <boost/python.hpp> 

BOOST_PYTHON_MODULE(mylib) 
{ 
    using namespace boost::python; 
    class_<Foo>("Foo") 
     .def_readwrite("x", &Foo::x); 
} 

Pythonでクラスを呼び出すのも同様に簡単です。私はこれを試したとき

>>> import mylib 
>>> fooObj = mylib.Foo() 
>>> fooObj.x = 3 
>>> print 'fooObj.x is ', fooObj.x 
fooObj.x is 3 
+0

は、私が持っている:例外ArgumentErrorを:Pythonの引数の型を None.None(フー、int型)に 一致しませんでしたC++の署名: なし(はFoo {左辺値}、int型*) – enobayram

+0

あなたは、変数を読み込むしようとした場合にも、あなたが得る: 'トレースバック(最新の呼び出しの最後):C++タイプが見つかりませんto_python(バイ値)コンバータ: TypeError例外で ファイル「」、1行目を、 :int * ' – user810973

関連する問題