考慮是這樣的:通在加速參考:: Python的
struct Parameter
{
int a;
Parameter(){a = 0;}
void setA(int newA){a = newA;}
};
struct MyClass
{
void changeParameter(Parameter &p){ p.setA(-1);}
};
好吧,讓我們快進和想象我已經做完這些類,揭露一切蟒蛇,和想象也是我實例參數的對象在C++代碼,這是我傳遞給python腳本,以及Python腳本使用MyClass的對象修改我在C++代碼開始時創建參數的實例。
該代碼執行後,在C++ Parameter實例是不變!!!這意味着它通過價值傳遞(或類似的東西:S),而不是通過引用。但我認爲,我宣佈它通過引用傳遞...
我似乎無法找到有關通過引用傳遞的boost :: Python文檔(雖然似乎是有關參考返回足夠的文檔......) 。任何人都可以提供一些提示或指針嗎?
在您的構造函數中爲Parameter添加分號後,此測試代碼對我來說工作正常:http://www.pastie.org/873263 – 2010-03-17 03:41:22
@Goose,問題是關於從Python使用此代碼,而不是從C++使用。 – 2010-03-17 17:50:23
@Barry mhm。這只是一個很快成型的例子。 – Fabzter 2010-03-18 04:01:36