2009-10-29 5 views
2

클래스 자체의 클래스의 연관 배열 멤버에 액세스하는 방법은 무엇입니까? Itcl는 C++를 모델로하고, C++에서 우리가 작성합니다ITCL - 클래스 내에서 연관 배열 멤버에 액세스하는 방법?

SomeObject.SomePublicMember = ... 

방법 Itcl에서 동일한 기능을 수행 할? 이러한 배열에 접근 자 프로 시저를 제공하지 않습니다.

$this cget -AssociativeArrayName(NamedIndex) 

전혀이 가능 :

$this cget -PublicMemberVariableName 

그러나 다음과 같은 구조가 작동하지 않습니다 나는 평소 일반 변수이이 cget를 사용하여 얻을 수 있습니다 봤어요?

답변

2

아아, cget은 원하는 것을 얻지 못합니다. 배열 요소가 ItclGetInstanceVar로 전달되지 않습니다 (이유는 확실하지 않습니다).

당신 사용은/설정 등을받을 수 있습니다

class myObject { 
    public variable AssArray 
    constructor {} { 
     array set AssArray "" 
    } 
    method setArr { elem val } { 
     set AssArray($elem) $val 
    } 
    method getArr { elem } { 
     return $AssArray($elem) 
    } 
    method getFullArr {} { 
     return [array names AssArray] 
} 
관련 문제