ns2脚本语言Tcl的扩展语言Otcl简单介绍<2>

来源:互联网 发布:卖家如何注册爱淘宝 编辑:程序博客网 时间:2024/04/30 20:51

Otcl是Tcl的扩展语言,增加了类的概念,但是和C++又不完全一样,但是ns2模拟中设计的并不太多,

下面给出一个完整的例子,大家看看,熟悉了解一下即可,要是要深入学习,再看大量资料吧。

Class Based    ;#定义 Based 类
Based instproc init { args } {   ;#构造函数
puts "init"
$self set speed_ 0    ;#初始化成员变量
eval $self next $args      ;#显式调用父类的 init 函数
}


Based instproc destroy {} {   ;#析构函数
puts "destroy!"
$self next    ;# $self next 调用父类同名方法
}


Based instproc speed { spd } {
$self instvar speed_    ;#使用类成员变量前需做如此申明
set speed_ $spd
}


Based base    ;#定义 Based 的对象 base,主动调用 init 函数
base speed "fast"     ;#调用 speed 函数
puts "[base set speed_]"   ;#调用 base 类的成员变量 speed_并输出


Class Derived -superclass Based   ;#继承
Derived derived   ;#主动调用父类的 init 方法
derived speed "lower"    ;#调用父类的 speed 函数
puts "[derived set speed_]"


Derived instproc speed { spd } {   ;#重写 speed 方法,实现多态
$self instvar speed_
set speed_ "derived speed"
}


derived speed "spd"  ;#验证多态调用
puts "[base set speed_]"
puts "[derived set speed_]"


derived destroy      ;#调用 destroy 方法销毁 derived 对象
base destroy      ;#调用 destroy 方法销毁 base 对象


上面的例子运行截图如下:


原创粉丝点击