在namespace :: 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」:沒有這樣的變量
可否請你提出一些可能的解決方案如何將一個對象的引用傳遞給另一個類中的另一個方法。