Есть ли способ подружить классы [incr Tcl]?

Есть ли способ получить дружбу между классами в incr Tcl ?

Рассмотрим код ниже.

package require Itcl

::itcl::class A {
   private {
      proc f { } {
         puts "==== A::f"
      }
   }
}

::itcl::class B {
   public {
      proc g { } {
         puts "==== want to be able to call A::f"
      }
   }
}

Я хочу, чтобы A::f был невидим за пределами A функций B. Как я могу этого добиться?


person Vahagn    schedule 21.01.2011    source источник


Ответы (1)


Itcl не предоставляет друзей.

Вы можете обойти это, создав вызов, используя namespace inscope , вот так:

namespace inscope A {A::f}
person Trey Jackson    schedule 21.01.2011