그래서 내 문제는 기본 클래스에 대한 포인터 만 가지고 하위 클래스의 필드에 액세스하는 방법을 모른다는 것입니다. 대신 어떻게해야하는지 물어볼 것이지만 링크드 목록에 대한 더 나은 해결책이 될 수 있다고 생각했습니다.Linked 여러 하위 클래스가있는 클래스 목록?
답변
그래서 당신은 부모와 같은 부모 클래스와 부모의 연결리스트가 있다면, 당신은 다음과 같이 하위 클래스로 캐스팅 dynamic_cast는 사용할 수 : 당신은 여기 dynamic_cast는에 대한 자세한 정보를 찾을 수
Child* child = dynamic_cast<Child*>(linkedlist_Parent_pointer);
: MSDN
링크 된 목록을 의사 코드 예제 : 당신은 P의 연결리스트를 가질 수 있도록 P, 다음, A, B 및 C는, 그들이 P에서 상속이 있습니다 이의 말을하자, 당신은 부모 클래스가 상상 :
마음에 2,053,210이 모든 촬영과 같은 노드 클래스 :
template<class T>
class Node
{
public:
Node(T* value)
{val = value;}
InsertAfter(Node<T>* node)
{next = node;}
T* val;
Node<T*>* next;
}
이는 아이디어를 얻을 수있는 단지 감소 예입니다,이 당신을 도울 수 있기를 바랍니다.
나는 동적 캐스팅으로 어떻게 할 수 있는지 모르겠다. 적어도 서브 클래스의 각 유형마다 노드 유형을 하나씩 만들 필요가 있다고 생각했다. 그리고 다음 노드에 대한 포인터를 void로 초기화 할 수 없었으며 서브 클래스에 따라 정적 캐스트를 사용 했습니까? –
기본 클래스를 노드에 포함 된 유형으로 사용할 수 있습니다. 그런 다음 값을 얻으려면 노드에서 "객체"클래스를 추출합니다. 기본 클래스이기 때문에 자식 클래스 유형을 알고 있으면 dynamic_cast를 사용할 수 있습니다 값을 얻으려면 static_cast 및 dynamic_cast에 대한 자세한 내용을 보려면 여기를 확인하십시오. http://stackoverflow.com/questions/332030/when-should-static-cast-dynamic-cast-const-cast-and-reinterpret-cast -be-used – yosbel
다른 하위 클래스를 사용하는 링크 목록의 예가 있습니까? 내가 읽은 바에 따르면 해결 방법 없이는 구현이 불가능한 것처럼 보이기 때문에 하나의 큰 클래스에서 모든 하위 클래스와 기본 클래스를 통합하는 것이 더 간단해질 것이라고 생각하게되었습니다. –
일반적으로 기본 클래스 열거 유형, 다음 상속 한 클래스에 가득 유형이 있습니다.
class base
{
base() { t = TYPE_UNKNONW; };
base (enum type) { t = TYPE_A; };
enum type { TYPE_UNKNONW, TYPE_A, TYPE_B };
protected:
enum type t;
}
class A : public base
{
A (enum type x) : base (x) {};
}
는 그 다음 일원이 기능에, 당신이 switch 문을 가질 수 있습니다. 이는 dynamic_cast를 사용할 수없는 경우의 대안입니다.
- 1. HTML. 요소에 하위 클래스가있는 여러 클래스 할당
- 2. 하위 클래스가있는 클래스 배열 정의
- 3. 하위 클래스가있는 부모 클래스 사용
- 4. 하위 클래스가있는 복사 클래스/개체
- 5. 여러 하위 클래스가있는 UICollectionView UICollectionViewCell
- 6. 다른 하위 클래스가있는 Java 클래스 확장
- 7. 여러 xib 이상의 클래스가있는 클래스?
- 8. 하위 클래스 호출 상위 클래스가있는 경우
- 9. LInked 목록 병합 C
- 10. 많은 하위 클래스가있는 추상 Java 클래스 리펙토링
- 11. android linked listers (청취자 목록)
- 12. WallpaperService의 하위 클래스가있는 IPC
- 13. 여러 하위 클래스가있는 선택기에 대한 HTML 구문
- 14. 여러 클래스가있는 XmlSerializer
- 15. 여러 클래스가있는 대리모 및 이벤트
- 16. QGraphicsView 하위 클래스가있는 생성자의 LNK2019
- 17. 상위 클래스 목록에 하위 클래스 목록 결합
- 18. 다른 클래스가있는 동일한 클래스
- 19. Linked Integers of Linked, Java의 연결된 목록입니다.
- 20. C#에서 추상적 인 하위 클래스가있는 기본 클래스?
- 21. 병렬 목록 대 여러 변수가있는 클래스 목록
- 22. Meteor 선택한 클래스가있는 목록 항목
- 23. 여러 하위 클래스 객체 만들기
- 24. 하나의 xib, 여러 하위 클래스
- 25. C++ OpenMPI linked-lists
- 26. 하위 클래스가있는 세션 범위 Managed Bean을 재정의
- 27. 여러 개의 하위 클래스가있는 경우 JavaScriptObject를 래핑 하시겠습니까?
- 28. C# 기본 및 하위 클래스가있는 다중 생성자
- 29. XSLT - 클래스가있는 무언가에 클래스 추가?
- 30. 부모 클래스가있는 경우 클래스 숨기기
동적 캐스트를 사용할 수 없습니까? – MikeMB