저는 덕트 시스템을 통한 가스 흐름의 특성을 계산하는 데 사용할 수있는 VBA 프로젝트를 진행하고 있습니다. 덕트 시스템은 clsSegments 클래스에 의해 저장된 Collection에 저장된 여러 Segments (VBA 클래스, clsSegment)로 구성됩니다.VBA 연속 클래스 개체 참조
각 세그먼트에는 clsDuctDim 클래스로 정의 된 입구 및 출구로 구성된 덕트 클래스 (clsDuct)가 있습니다.
원하는 경우 세그먼트 번호. 2 입구 덕트가 세그먼트 번호의 특성을 상속합니다. 1 콘센트 덕트 :
set Segments(2).Duct.Inlet = Segments(1).Duct.Outlet
이것은 작동합니다. 내가 어떤 세그먼트를 원하는 경우 지금
set segments(2).Duct.Outlet = segments(2).Duct.Inlet
:
마찬가지로 나는에 의해 배출 덕트로 유입 덕트를 사용하도록 선택할 수 있습니다. 동일한 작업을 수행하는 n + 2 :
set Segments(3).Duct.Inlet = Segments(2).Duct.Outlet
set Segments(3).Duct.Outlet = Segments(3).Duct.Inlet
이렇게하면 세그먼트 번호 3이 실제로 세그먼트 번호를 가리 킵니다. 엔. 세그먼트 2와 세그먼트 1 사이의 참조를 깰 경우 세그먼트 3은 여전히 세그먼트 1을 가리 킵니다. 원하는 것은 아닙니다. 내가 세그먼트 3 세그먼트 2를 가리키고 싶습니다. 내가하려는 것은 세그먼트 1 데이터가 저장되어있는 실제 메모리 위치를 가리 키기보다는 포인터를 가리키는 것입니다.
어떻게 달성 할 수 있습니까?
좋아요, 내가 한 것은 모든 세그먼트를 통과하고 참조가 설정되거나 끊어 질 때마다 서로에 대한 참조를 설정하거나 끊는 Segments 클래스에 하위 유지 관리를 작성하는 것이 었습니다. 수동으로 불러야합니다. – lyhnet
참조가 깨 졌을 때 모든 값을 잃을 것입니다. 피하려고했던 것이 아닌가요? –
참조 된 값의 값으로 복사하여 임시 clsDuctDimension 인스턴스에 저장하는 위치를 언급 할 때 복사 기능이 있습니다. 그런 다음 참조를 끊고 값을 Segment (2) .Duct.Inlet 또는 Outlet에 복사합니다. – lyhnet