在命名空间 ::NodeTypes 我有一个类 NodeType1 和另一个类 NodeType2 的另一个对象。
我还有一个类 NetworkCollector 和另一个类 NodeType2 的另一个对象
我需要将 NodeType1 和 NodeType2 的对象作为参数传递给 NetworkCollector 的对象,并使用 NetworkCollector 类中传递的对象的功能。
您能否就如何将一个对象的引用传递给另一个类中的另一个方法提出一些可能的解决方案。以下示例代码不起作用:
itcl::class ::NodeTypes::NodeType1 {
private activeChannels 0;
method addChannels {numChannels} {
#set active channels
set activeChannels $numChannels
}
method getActiveChannels {} {
# return number of channels being used in the NodeType1 object
return $activeChannels
}
}
itcl::class ::NodeTypes::NodeType2 {
private activeChannels 0;
method addChannels {numChannels} {
#set active channels
set activeChannels $numChannels
}
method getActiveChannels {} {
# return number of channels being used in the NodeType2 object
return $activeChannels
}
}
::NodeTypes::NodeType2 NodeType2Object2
itcl::class ::NodeTypes:NetworkCollector {
method getTotalUsedChannels {Node1 Node2} {
set Node1Channels [Node1 getActiveChannels]
set Node2Channels [Node2 getActiveChannels]
set totalActiveChannels [$Node1Channels + $Node2Channels]
puts "Total active channels are $totalActiveChannels"
}
}
#creating objects
::NodeTypes::NodeType1 NodeType1Object
::NodeTypes::NodeType2 NodeType2Object
#adding channels to nodes
NodeType1Object::addChannels 5
NodeType2Object::addChannels 10
#calculating total active channels
::NodeTypes:NetworkCollector networkCollector1
networkCollector1 getTotalUsedChannels $NodeType1Object $NodeType2Object
问题:抛出错误----->无法读取“NodeType1Object”:没有这样的变量
您能否就如何将一个对象的引用传递给另一个类中的另一个方法提出一些可能的解决方案。