하나의 기본 클래스가 있고 그 중 10 개의 다른 구체적인 파생 클래스를 파생하면 각 파생 클래스마다 다른 vtable이 생깁니 까?파생 된 콘크리트, 클래스의 vtables
답변
파생 클래스가 가상 메서드를 재정의/선언하는지 여부에 따라 다릅니다.
파생 클래스의 기본 클래스 나 모든 클래스에 가상 함수가 있으면 일반적으로 그렇습니다. 왜 중요 함?
두 클래스는 가상 함수 세트가있는 경우에만 vtable을 공유 할 수 있습니다. 파생 클래스는 가상 함수를 무시하지 않으면 기본 클래스와 vtable을 공유 할 수 있습니다.
동일한 파생 클래스의 멤버 함수가 동일한 기본 클래스의 함수를 모두 재정의하지 않는 한 파생 클래스는 다른 파생 클래스와 vtable을 공유 할 수 없습니다. 다른 파생 클래스의 멤버 함수와 다른 형식입니다.
나는 모든 파생 된 클래스가 하나의 v 테이블을 사용할 것인지, 아니면 다른 것을 가질 것인지 혼란스러워했다. –
네, 실제로 파생 된 모든 클래스는 기본 클래스가 순전히 추상적이어서 자신이 가진 가상 함수를 타고 넘어서있다. v 테이블 –
가상 함수 세트가 indentical 인 경우 vtable 만 공유 할 수 있습니다. 이는 파생 클래스가 가상 함수를 무시하지 않으면 기본 클래스와 vtable을 공유 할 수 있음을 의미합니다. –
- 1. 상속 : 파생 클래스의 파생 속성
- 2. 기본 콘크리트 클래스의 인터페이스에 추가 할 속성?
- 3. 파생 클래스에서 클래스의 보호 된 멤버에 액세스
- 4. 파생 된 유형에 클래스의 정적 멤버 사용?
- 5. C#에서 파생 된 클래스의 시각화
- 6. Shape에서 파생 된 클래스의 Binding Fill 속성
- 7. 파생 된 목록에서 다른 클래스의 객체 처리
- 8. C# 파생 클래스의 특성
- 9. 파생 클래스의 RemoveHandlers
- 10. 파생 클래스의 기본 클래스의 공개 이벤트
- 11. 클래스의 파생 멤버 재정의 override
- 12. 파생 클래스의 모든 __slots__ 얻기
- 13. 파생 된 컨트롤 만들기
- 14. 왜 콘크리트 클래스의 추상적 인 하위 클래스가 나쁜 디자인입니까?
- 15. 인터페이스에 의해 파생 된 구체적인 클래스의 메서드 풀을 확장합니다.
- 16. UIView에서 파생 된 사용자 정의 클래스의 경계/프레임에 관한 질문
- 17. OOP 파생 클래스와 상속 된 클래스의 차이점은 무엇입니까?
- 18. 파생 클래스에서 기본 클래스의 보호 된 메서드에 액세스하는 방법?
- 19. 파생 클래스는 기본 클래스의 정적 메서드를 호출해야하지만 재정의 된 속성은
- 20. 기본 클래스는 파생 클래스의 보호 된 필드를 볼 수 있습니까?
- 21. Visual C++ 6.0 - 파생 된 CDialog 클래스의 OnInitDialog이 작동하지 않습니다.
- 22. 파생 된 형식을 기반으로 클래스의 명시 적 특수화 선택
- 23. DataContract를 사용하여 List <>에서 파생 된 클래스의 serialization
- 24. 선 형상을 사용한 파생 클래스의 특수한 상황
- 25. 파생 클래스에서 기본 클래스의 구현을 호출 하시겠습니까?
- 26. 자바 인터페이스는 내부적으로 어떻게 구현됩니까? (vtables?)
- 27. 파생 클래스의 수퍼 클래스에 대한 테스트 적용
- 28. 파생 클래스의 특성 값을 변경 하시겠습니까?
- 29. 파생 클래스와 기본 클래스에 매개 변수화 된 생성자가있는 경우 파생 클래스의 개체를 초기화하는 방법은 무엇입니까?
- 30. 추상 클래스 콘크리트 메서드 테스트
언어/런타임/컴파일러 등은 무엇입니까? –
제 추측은 C++입니다. 가상 및 비 가상 방법을 모두 갖춘 유일한 언어입니다. – EFraim
이 태그가 주관적인 이유는 무엇입니까? –