고유 한 형식의 인수를 사용하는 메서드로 인터페이스 (가상 기본 클래스가 C++로 작성)를 만들 계획입니다.파생 클래스 유형의 재정의 함수 매개 변수 유형
class Base {
public:
virtual void seriousMethod(const Base &arg) = 0;
}
그러나 파생 클래스는 기본 클래스 형식의 인수가 아니라 파생 클래스 형식의 인수를 가져야합니다.
class Derived: public Base {
public:
virtual void seriousMethod(const Derived &arg) { /* ... */ }
}
어떻게 알 수 있습니까? 기본 클래스 (예 : Base<Derived>
)를 템플릿해야하나요 아니면 더 깨끗한 솔루션이 있습니까?
요점 -이 작업을 수행하는 동기는 무엇입니까? –
"그러나 파생 클래스는 기본 클래스 형식의 인수가 아니라 파생 클래스 형식의 인수를 가져야합니다."- 가상 메서드를 사용하는 데있어 중요한 점은 무엇입니까? – berak
@EdHeal 구체적으로, 파생 된 구현에 의해 지정되는 A-Star 검색 일반 노드 클래스. – Appleshell