2013-04-23 3 views
0

동일한 클래스의 두 객체를 비교하는 메소드를 작성하고 있습니다. 두 번째 객체가 인수로 전달됩니다. 이 메소드는 현재 객체의 private 메소드 CalcValue을 호출하여 시작합니다. 필요한 경우 (한 번만 수행하면 됨) 해당 값을 계산하여 개인 변수 value에 넣습니다.Tcl : 클래스의 인스턴스 비교

인수로 전송 된 객체에 대해 어떻게 동일한 작업을 수행 할 수 있습니까? 해당 객체의 개인 CalcValue 메소드에 액세스하려면 나중에 value 개인 변수에 액세스하십시오. 메서드를 public으로 만들고 변수에 대한 공용 액세스 메서드를 작성해야합니까?

답변

1

내가 사용하는 객체 지향 프레임 워크를 알지 못하기 때문에 [incr Tcl]이라고 가정합니다. 두 번째 개체에 액세스하려는 경우 CalcValue 메서드를 public으로 설정해야합니다. 개인이다

package require Itcl 

itcl::class Thing { 
    method CalcValue {} { return 999 } 
    method compare {otherThing} { 
     set myValue [CalcValue] 
     set otherValue [$otherThing CalcValue] 
     # Do something 
    } 
} 

# -------- MAIN: Create two instances and compare -------- 
Thing thing1 
Thing thing2 
thing1 compare thing2 

CalcValue 경우, 호출 $otherThing CalcValue가 실패합니다 아래 방법에 액세스하는 방법을 설명 지나치게 단순화 된 예입니다.