0

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

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

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

$node1 set x 4

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

任何帮助都会得到帮助。

提前致谢。

4

2 回答 2

1

感谢多纳尔的回答。但我找到了我真正需要的东西(并且它起作用了),它是这样的:

set x [$class set y]
于 2010-05-04T11:59:49.873 回答
0

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

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

于 2010-05-03T21:33:15.297 回答