NS2、Otcl:使用类中拥有的实例的变量

发布于 2024-08-31 17:06:09 字数 435 浏览 5 评论 0原文

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

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

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

$node1 set x 4

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

任何帮助都是appriced。

提前致谢。

I'm using NS2 to create some new classes in C++ and then link them to otcl. The linkage and everything works, but when I try to use the otcl variables in an object, I'm having a trouble.

For example, suppose I have a class "Node" with the variable X. In the code I want to set this value and later on use it in some if-statements.

Setting the variable is no problem using this code:

$node1 set x 4

Now the problem I'm having is when I try to use this variable x anywhere. In C++ we could use a general variable (i.e., y) and say "y=node.x" and then use y in some if-statements. I have tried to look for a method to perform the same thing in otcl, but failed.

Any help is appriciated.

Thanks in Advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

前事休说 2024-09-07 17:06:09

感谢多纳尔的回答。但我找到了我真正需要的(并且它有效),如下所示:

set x [$class set y]

Thanks Donal for the answer. But I found what I really needed (and it worked), which is something like this:

set x [$class set y]
旧时浪漫 2024-09-07 17:06:09

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

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

I think you're looking for OTclSetInstVar and OTclGetInstVar to write and read instance variables respectively. They're defined in otcl.h, which is a plain C header file, and their use should be pretty obvious if you're used to general Tcl APIs.

If you've got a version of NS2 built on top of the newer XOTcl (which I gather exists from the projects that the XOTcl main author is involved with through Google Summer of Code over the past couple of years) then the APIs are XOTclOSetInstVar and OTclGetInstVar in (or rather included off of) xotcl.h. The type signatures are not the same though; they're only logically drop-in replacements, and not actual drop-ins. (OTcl uses pure string-based APIs, XOTcl uses much more efficient – but complex – Tcl_Obj-based APIs.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文