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.)