downcasting

    1

    4답변

    여기에 코드입니다. 상향 캐스팅은 해당 스텐실을 좁히므로 파생 클래스가 추가 된 멤버에 액세스 할 수 없습니다. 그리고 여기서 다운 캐스팅은 스텐실을 다시 확장합니다. 질문은 다음과 같습니다. 보존 된 유형의 파생 부분에 대한 참조가 없으므로 자료 만 제공됩니다. GC의 일부 동작이나 활동이 다운 캐스팅이 발생할 때까지 파생 멤버를 포함하는 데 사용 된 메

    0

    1답변

    동일한 기본 충돌기 클래스에서 파생 된 두 가지 유형의 충돌기, 원 및 상자가 있다고 가정 해 보겠습니다. 원호 충돌 자 또는 상자 충돌 자일 수있는 충돌 자에 대한 포인터를 포함하는 엔티티 클래스가 있습니다. class Collider {}; class CircleCollider : public Collider { // Defines a c

    0

    2답변

    내가 다음과 같이 여러 클래스에서 상속 클래스를 만드는 시도 주조 : 를   A  /\ B   C   \ /   D 는 지금, 나는 기본 클래스 ()에 대한 포인터를 보유하고 링크 된 목록과 컨테이너를 가지고있다. 포인터를 명시 적으로 캐스팅하려고 시도했을 때 (typeid 검사 후) 다음 오류가 발생했습니다. "기본 클래스"A "의 포인터를 파생 클래스"

    0

    1답변

    클래스 A가 포함 된 제 3 자 프로젝트를 사용한다고 가정 해보십시오. 그리고 클래스 A는 모든 곳에서 사용됩니다. Class A에서 M1 방식이 만족스럽지 않습니다. 첫째, 클래스 A를 변경하고 싶지 않습니다. 두 번째로 A.M1()이 필요합니다. (M1은 다른 사람에게 전화 할 것입니다.) 제 디자인은 다음과 같습니다 : public MyClass {

    0

    2답변

    그래서 하나의 템플릿 클래스 B을 템플릿이 아닌 클래스 A에서 상속받습니다. 이제이 템플릿 버전 B에는 유효하고 알려진 템플릿 클래스가 4 개 있고 B<uint8_t>, B<uint16_t>, B<uint32_t>, B<uint64_t>이라고합니다. 현재지도에 boost::unordered_map<std::string, A>을 저장하고 있으며 다른 유형으로

    0

    2답변

    포인트마다 자체 유형이있는 두 개의 다른 라이브러리를 사용하고 있습니다. 두 유형 모두 x 및 y 좌표를 가지며 각각에는 일부 특수 필드가 있습니다. 목록에 두 유형 (예 : PointA 및 PointB)을 모두 저장하려고합니다. PointA 및 PointB은 라이브러리 유형이며 수정할 수 없으므로 기본 클래스를 사용할 수 없습니다. 실제로 List (점

    0

    2답변

    에 부모로부터 downcasting에 실패 내가 가지고있는 다음과 같은 부모의 자녀 간단한 클래스 : class BoundBases{ public: virtual ~BoundBases() { } }; // Rectangular Bounds for tree class RectBounds : public BoundBases{

    3

    3답변

    자바와 같은 경우, 수퍼 클래스를 하위 클래스으로 다운 캐스트 할 수 있습니다. 유형이 실제로 하위 클래스 인 경우에만 가능합니다. 그러나 haskell에서 우리는 단순히 형식 클래스를 해당 형식 클래스의 인스턴스로 '다운 캐스트'할 수 있습니다. 예를 들어 fromInteger은 Num을 반환합니다. 내 관점에서 볼 때 실제로는 Int이므로 플로트으로 '

    1

    2답변

    최근에 Liskov 대체 원칙 (LSP)에 대한 읽기를 시작했는데, 나는 그 영향을 완전히 이해하기 위해 고심하고 있습니다. "하위 유형에서 전제 조건을 강화할 수 없다"는 제약. 이 제한은 기본에서 파생 된 클래스로 다운 캐스트해야 할 필요성을 최소화하거나 회피해야한다고 제안하는 설계 원칙과 충돌합니다. 즉, Animal 클래스로 시작하여 Dog, Bir

    5

    2답변

    데이터를 가진 부모를 가진 자식을 만드는 가장 좋은 방법은 무엇입니까? public class Child extends Person { public Child(Parent p) { this.setParentField1(p.getParentField1()); this.setParentField2(p.getParentField2())