NS2, Otcl: использование переменной принадлежащего экземпляра в классе

Я использую NS2 для создания некоторых новых классов в C++ и затем связываю их с otcl. Связь и все работает, но когда я пытаюсь использовать переменные otcl в объекте, у меня возникают проблемы.

Например, предположим, у меня есть классNode"с переменной X, В коде я хочу установить это значение, а затем использовать его в некоторых операторах if.

Установка переменной не проблема с использованием этого кода:

$node1 set x 4

Теперь у меня проблема, когда я пытаюсь использовать эту переменную x в любом месте. В C++ мы могли бы использовать общую переменную (т.е. y) и скажи "y=node.x"а затем использовать y в некоторых операторах if. Я попытался найти метод, чтобы выполнить то же самое в otcl, но не удалось.

Любая помощь ценится.

Заранее спасибо.

2 ответа

Спасибо Доналу за ответ. Но я нашел то, что мне действительно нужно (и это сработало), что-то вроде этого:

set x [$class set y]

Я думаю, что вы ищете OTclSetInstVar а также OTclGetInstVar писать и читать переменные экземпляра соответственно. Они определены в otcl.h, который является простым заголовочным файлом C, и его использование должно быть довольно очевидным, если вы привыкли к общим API Tcl.

Если у вас есть версия NS2, построенная на основе более нового XOTcl (который, как я понимаю, существует из проектов, с которыми основной автор XOTcl связан через Google Summer of Code за последние пару лет), то API-интерфейсы XOTclOSetInstVar а также OTclGetInstVar в (или, скорее, включены вне) xotcl.h, Сигнатуры типов не одинаковы; они представляют собой только логически замену, а не фактические вставки. (OTcl использует чисто строковые API, XOTcl использует гораздо более эффективные - но сложные - Tcl_Objна основе API.)

Другие вопросы по тегам