예를 들어, 추상 기본 클래스 A
및 B
이 있습니다. B
위한 따라서 클래스 A1 들어2 개의 접힌 다형성이 이상합니다. 어떻게 확장 할 수 있습니까?
class A
{
public:
virutal void f(B& b) = 0;
};
class A1 : public A
{
public:
void f(B& b) override { b.f(A1); }
};
및 다음 A
는
class B
{
public:
virtual void f(A1& a) = 0;
};
그리고 class B1 : public B
에 f(A1)
는 가상 메소드는 가상 메소드를 필요 가상 메소드를 갖는다 구현. 문제는 또 다른 class A2 : public A
을 추가 할 때 B
클래스에 가상 메서드 virtual void f(A2& a) = 0
을 추가해야한다는 것입니다.이 코드는 인지 알 수 없기 때문에 코드를 깨뜨린 것 같아요. A1
도 추가되었거나 클래스를 디자인 할 때 B
을 디자인 할 때 발생합니다. 그것을 피하는 방법 그러나 동등한 요구 사항을 구현하는 방법? 모든 C++ 기능은 템플릿에서도 사용할 수 있습니다.
정말 달성하기를 원하십니까? –