Предположим следующие объявления кода: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_someVariable
изнутри SomeMethod
на m_ownedObject. На других языках (скажем, C/C++/C#/Java, чтобы назвать несколько), я уверен, что я мог бы просто сказать что-то вроде:
m_ownedObject.m_someVariable = 5
Есть ли способ сделать что-то подобное в Tcl, или мне всегда нужно создавать защищенные геттеры и сеттеры? Надеюсь, это достаточно понятно.
Я не уверен, что вы поняли. Я получаю доступ к переменной из класса - я просто использую другой экземпляр (т. Е. Не «это»). Это разрешено на других языках. Я на 100% уверен в этом. Я просто проверил его на C# – Jordan