假設以下代碼聲明:Tcl:在類中設置自有實例的私有變量
itcl::class ObjectA {
private variable m_ownedObject
private variable m_someVariable
constructor {} \
{
set m_ownedObject [ObjectA #auto]
}
protected method SetSomeVariable {newVal} {
set m_someVariable $newVal
}
public method SomeMethod{} {
$m_ownedObject SetSomeVariable 5
}
}
這是我知道如何在m_ownedObject上的SomeMethod
中修改m_someVariable
的唯一方法。在其他語言中(比如說C/C++/C#/ Java),我很確定我可以這樣說:
m_ownedObject.m_someVariable = 5
有沒有辦法在tcl中做這樣的事情,或者我是否總是需要創建受保護的getter和setter?希望這是相當清楚的。
我不知道你的理解。我從類內部訪問變量 - 我只是使用不同的實例(即不是'this')。這在其他語言中是允許的。我對此100%肯定。我剛剛在C#中進行了檢查 – Jordan 2010-02-04 18:53:29