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

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

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

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

$node1 set x 4

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

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

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

Ответы [ 2 ]

1 голос
/ 04 мая 2010

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

set x [$class set y]
0 голосов
/ 04 мая 2010

Я думаю, вы ищете 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 на основе.)

...