2010-05-02 93 views
0

我使用NS2在C++中創建一些新類,然後將它們鏈接到otcl。鏈接和一切正常,但是當我嘗試在對象中使用otcl變量時,我遇到了麻煩。NS2,Otcl:在類中使用一個擁有實例的變量

例如,假設我有一個類「Node」,變量爲X。在代碼中,我想設置這個值,稍後在一些if語句中使用它。

設置變量是使用此代碼沒有問題:

$node1 set x 4 

現在我遇到的問題是,當我試圖在任何地方使用這個變量x。在C++中,我們可以使用一般變量(即y)並說「y=node.x」,然後在某些if語句中使用y。我試圖尋找一種方法在otcl中執行相同的事情,但失敗了。

任何幫助appriciated。

在此先感謝。

回答

0

我認爲你正在尋找OTclSetInstVarOTclGetInstVar來分別編寫和讀取實例變量。它們在otcl.h中定義,它是一個普通的C頭文件,如果你習慣於一般的Tcl API,它們的用法應該是非常明顯的。

如果你有一個在較新的XOTcl之上構建的NS2版本(我收集了XOTcl主要作者在過去幾年中通過Google Summer of Code參與的項目),那麼API是XOTclOSetInstVarOTclGetInstVar(或者包含在xotcl.h之內)。類型簽名是不是雖然相同;他們只是在邏輯上插入替換,而不是實際的插件。 (OTcl使用純粹的基於字符串的API,XOTcl使用效率更高 - 但複雜 - 基於Tcl_Obj的API。)

1

謝謝Donal回答。但我發現我真正需要的東西(和它的工作原理),這是這樣的:

set x [$class set y] 
相關問題