NS2,Otcl:在类中使用自有实例的变量

时间:2010-05-02 11:26:57

标签: c++ tcl ns2 otcl

我正在使用NS2在C ++中创建一些新类,然后将它们链接到otcl。链接和一切都有效,但是当我尝试在对象中使用otcl变量时,我遇到了麻烦。

例如,假设我有一个带有变量Node的类“X”。在代码中我想设置这个值,然后在一些if语句中使用它。

使用此代码设置变量没有问题:

$node1 set x 4

现在我遇到的问题是当我尝试在任何地方使用这个变量x时。在C ++中,我们可以使用一般变量(即y)并说出“y=node.x”,然后在一些if语句中使用y。我试图在otcl中寻找一种方法来执行相同的操作,但是失败了。

任何帮助都是适当的。

先谢谢。

2 个答案:

答案 0 :(得分:1)

感谢Donal的回答。但我找到了我真正需要的东西(并且它有效),这是这样的:

set x [$class set y]

答案 1 :(得分:0)

我认为您正在寻找OTclSetInstVarOTclGetInstVar来分别编写和读取实例变量。它们是在otcl.h中定义的,它是一个普通的C头文件,如果你习惯了一般的Tcl API,它们的使用应该非常明显。

如果您有一个基于较新的XOTcl构建的NS2版本(我收集的是XOTcl主要作者在过去几年中通过Google Summer of Code参与的项目),那么API是XOTclOSetInstVarOTclGetInstVarxotcl.h中(或者更确切地说包括在内)Tcl_Obj。类型签名相同;他们只是逻辑上的替代品,而不是实际的插件。 (OTcl使用纯粹的基于字符串的API,XOTcl使用更高效 - 但复杂 - 基于{{1}}的API。)