double-dispatch

    3

    2답변

    하나는 서브 클래스를 비교하는 operator==(const Base& base) 구현하는 방법을 s.t. 무료 서 함수로 연산자 ==를 구현 Base* base1 = new Derived1(); Base* base2 = new Derived2(); base1->operator==(*base2)?

    0

    1답변

    C++는 내가 객체 지향을 사용하는 광범위하게 사용했던 첫 번째 언어이므로이 아이디어에 조금 새로운 점이 있습니다. 저는 C++에서 Go (실제 OOP 시스템 대신 인터페이스를 사용하는)에서 작업하고 있던 게임 라이브러리를 이식하려고합니다. 포인트, 경계, 선 및 다각형의 네 가지 유형을 사용하는 충돌 시스템이 있습니다. 제가하고 싶은 것은 이들 모두를 "

    1

    2답변

    나는 이것이 나쁜 생각이라고 확신합니다. 내가 그럴만 한 이유가 있다고 가정합시다. 성공적으로 정적 다형성을 사용하여 메시지를 전달하는 노드 트리가 있습니다. 결정적으로 각 노드는 연결할 노드 유형을 전달할 수 없으며 전달되는 메시지의 유형 만 알 수 있습니다. 트리를 탐색하기 위해 CRTP를 사용하여 방문자 패턴을 구현했습니다. 이것은 트리의 첫 번째 레

    0

    2답변

    이중 디스패치를 ​​사용하여 다른 클래스 (A)의 하위 클래스 인 2 클래스 (B, C)의 2 개 개체 사이의 거리를 구합니다. class A의 메소드는 순수 가상이어야한다고 생각하지만 class A은 인스턴스화 가능해야하므로 순수 가상으로 만들 수 없습니까? 또 다른 한가지는 기본 클래스에서 Distance(A *a)의 정의에서 무한 루프를 생성하기 때문

    0

    1답변

    는 내가이 class BC_TOYFD { public: BC_TOYFD(BS_TOYFD * pBS, BC2 dBC2); virtual ~BC_TOYFD(void) ; BS_TOYFD * _pBS ; BC2 _dBC2 ; double _PDA ; // store price down approxi

    2

    3답변

    이 내가 이전에 물었다 문제에 대한 부분 2 : Is it possible to have polymorphic member overloading in C++? 나는이 예제를 만든 위키 예를 사용. 내 문제는 컴파일 된 코드가 vtable을 조회하지 않으며 항상 상속 된 클래스 대신 기본 코드를 사용한다는 점입니다. #include <iostream> c

    7

    5답변

    다음에서는 EventHandler가 한 가지 방법으로 EventA를 처리하고 다른 방법으로 EventB를 처리하고 다른 이벤트 (EventC, EventD)를 다른 방법으로 처리하도록합니다. EventReceiver는 이벤트에 대한 참조 만 받고 EventHandler.handle()을 호출합니다. 물론 항상 호출되는 버전은 EventHandler.hand

    0

    1답변

    무엇이며, 무엇이 다른가요? 많은 소스는 Wikipedia처럼 제 그들은 같은 일,하지만 다른 사람은 명시 적으로 this question에 SBI처럼, 반대 말 : 첫째 : "방문자 패턴이 두 번 파견을 시뮬레이션 할 수있는 방법입니다 C++에서. " 이것은 완전히 옳지 않습니다. 실제로, 이중 디스패치는 C++에서 (누락 된) 다중 메소드를 시뮬레이트하

    1

    2답변

    메서드와 클래스 모두에 대해 확장 할 수있는 이중 디스패치를 ​​구현하는 방법을 찾고 있습니다. 은 지금까지 나는 기본적으로 세 가지 방법을 사용 : 좋은 switch (새 클래스를 추가하기 어려운 새로운 기능을 쉽게 추가 할 수) 방문자 패턴 (매우 유사과 전통적인 절차 적 접근 : 쉽게 ) 나는 보라 해요 ) 새로운 기능을 추가 (새로운 클래스를 쉽게

    3

    1답변

    두 가지 매개 변수가있는 메서드를 사용할 수 있습니다. 나는 그것들을 다음과 같이 구현하고있다 : if(aObj instance of Marble) { if(bObj instance of Bomb) { this.resolve((Marble)aObj,(Bomb)bObj); } } 매우 예쁜 해결책은 아니다. 이중 디스 패칭을