2017-10-24 15 views
4

나는 (공개) 변수를 상속하는 데 문제,의 내가 그것을VB6 회원은 변수 상속

을 보유하고있는 클래스를 상속하는 경우 선언은 위, 그러나, 그 자체에 대한 문제가 발생하지

Public Var As ClassThatIsIndependent 

을 가정 해 봅시다

Implements BaseClass 

"개체 모듈이 인터페이스 용 변수를 구현해야합니다."라는 오류 메시지가 나타납니다. 나는

Public Var As ClassThatIsIndependent 

Public BaseClass_Var As ClassThatIsIndependent 

(ChildClass에 내부 모두)이 옵션을 시도했다 그러나 그들 중 누구도이 문제를 해결합니다. 어떤 대안? 가능한 Set/Get 솔루션에 대한 공개적이지만 Var을 공용 변수로 유지하는 것을 선호합니다. 은 Visual Basic 6.0 프로그래머 가이드, 다형성 당

답변

7

, Implementing Properties 섹션 :

Option Explicit 
Public Age As Double 

: 우리가 선언 구역에 공용 변수를 추가하여, 동물 클래스에게 나이 속성을 제공한다고 가정

Tyrannosaur 및 Flea 클래스의 코드 모듈에서 프로 시저 드롭 다운에는 이제 Age 속성을 구현하는 속성 프로 시저가 포함됩니다.

...

공개 변수를 사용하여 속성을 구현하면 프로그래머가 편리하게 사용할 수 있습니다. 비하인드 백그라운드에서 Visual Basic은 프로퍼티 프로 시저 쌍으로 프로퍼티를 구현합니다.

두 절차를 모두 구현해야합니다. 다음과 같이 속성 절차는 쉽게 개인 데이터 멤버의 값을 저장하여 구현됩니다 : 당신이 그것을 직접 추가 할 수 있도록

Private mdblAge As Double 

Private Property Get Animal_Age() As Double 
    Animal_Age = mdblAge 
End Property 

Private Property Let Animal_Age(ByVal RHS As Double) 
    mdblAge = RHS 
End Property 

개인 데이터 멤버는 구현 세부입니다.

즉, 공용 변수를 사용하거나 속성 가져 오기/가져 오기로 정의 할 때 "공용 인터페이스"는 완전히 동일합니다. 그리고 인터페이스에서 속성을 구현하려면 Public 변수 접근법을 사용할 수 없으며 Property Get/Let 구문을 사용하고 개인 변수에서 데이터 저장을 처리해야합니다.

+1

거의 20 년이 지난 지금에도 사람들은 여전히 ​​설명서를 열지 않는 것으로 생각하지 않습니다. 기묘한. 지금 쯤이면 그들은 VB6에 가장 뛰어난 워드 프로세서가 있다는 사실을 깨달아야합니다. 불완전하지만 대부분 다른 것들보다 훨씬 낫습니다. 이것이 VB6가 항상 Tiobe의 "도움을 구걸"순위에 오르는 이유 중 하나 일 것입니다. – Bob77

+0

@ Bob77 글쎄, 많은 사람들이 요즘 VB6를 사용하도록 강요 당했다고 생각하지만 상자에 들어있는 오리지널 설명서가 아직 없습니다. 나는 그 텍스트가 여전히 마이크로 소프트 사이트에 있다는 사실에 놀랐다. –