天天看點

NS2使用入門:NS by Example中文翻譯(2)

章節2:OTcl :The User Language

例1是一個通用Tcl腳本,展示了如何建立一個程式,如何配置設定變量值,以及如何建立一個環。OTcl是Tcl的面向對象擴充,就像C和C++一樣。

NS2使用入門:NS by Example中文翻譯(2)

在Tcl中,關鍵詞proc用來定義一個程式,由一個程式名和變量在大括号裡。關鍵詞set用來給一個變量配置設定一個值。[expr…]用來讓解釋器在關鍵詞後的括号内計算表達式的值。一個地方需要注意的是,擷取一個配置設定給變量的值,就是$用來和變量名挂鈎。關鍵詞puts輸出雙引号間的字元串。以下展示了例1的結果:

NS2使用入門:NS by Example中文翻譯(2)

下一個例子是用Otcl編寫的面向對象程式設計執行個體。這個例子非常簡單,但也展示了用Otcl如何建立一個對象以及使用。作為一個正常NS使用者,你自己寫自己的對象的機會可能很少。但是,因為你在一個NS仿真程式設計中使用的所有NS對象,不管是不是用C++編寫的通過Otcl連結器供OTcl使用的,或者直接用OTcl編寫的,本質上都是OTcl對象,是以了解OTcl對象很重要。

NS2使用入門:NS by Example中文翻譯(2)

例2是一個OTcl腳本定義了兩個對象類,“mom”和“kid”,“kid”是“mom”的子類,并且對每個類都有個成員函數叫“greet”。在類定義後,都聲明了每個對象執行個體,執行個體中的“age”變量設定為45(“mom”)和15(“kid”),并且每個對象執行個體都調用了“greet”成員函數。Class關鍵詞用來建立一個對象類,instproc用來定義一個對象類的成員函數。類繼承則固定使用關鍵詞 -superclass。定義成員函數中,¥self和C++中的this指針作用相同,instvar檢查後面的變量名是否在它的類或者父類中已聲明。如果一個變量名已經聲明,變量就被引用,如果沒有聲明就建立一個。最後,關鍵詞new用來建立一個新對象執行個體。結果如下:

NS2使用入門:NS by Example中文翻譯(2)
NS2