我正在使用NS2在C ++中创建一些新类,然后将它们链接到otcl。链接和一切都有效,但是当我尝试在对象中使用otcl变量时,我遇到了麻烦。
例如,假设我有一个带有变量Node
的类“X
”。在代码中我想设置这个值,然后在一些if语句中使用它。
使用此代码设置变量没有问题:
$node1 set x 4
现在我遇到的问题是当我尝试在任何地方使用这个变量x时。在C ++中,我们可以使用一般变量(即y
)并说出“y=node.x
”,然后在一些if语句中使用y
。我试图在otcl中寻找一种方法来执行相同的操作,但是失败了。
任何帮助都是适当的。
先谢谢。
答案 0 :(得分:1)
感谢Donal的回答。但我找到了我真正需要的东西(并且它有效),这是这样的:
set x [$class set y]
答案 1 :(得分:0)
我认为您正在寻找OTclSetInstVar
和OTclGetInstVar
来分别编写和读取实例变量。它们是在otcl.h
中定义的,它是一个普通的C头文件,如果你习惯了一般的Tcl API,它们的使用应该非常明显。
如果您有一个基于较新的XOTcl构建的NS2版本(我收集的是XOTcl主要作者在过去几年中通过Google Summer of Code参与的项目),那么API是XOTclOSetInstVar
和OTclGetInstVar
在xotcl.h
中(或者更确切地说包括在内)Tcl_Obj
。类型签名不相同;他们只是逻辑上的替代品,而不是实际的插件。 (OTcl使用纯粹的基于字符串的API,XOTcl使用更高效 - 但复杂 - 基于{{1}}的API。)