내 그룹은 간단하다 다음과 같은 구조추상적 인 파생 클래스
class Base
{
public:
float some_base_function();
};
class Derived : public Base
{
public:
float some_other_function();
float yet_another_function();
};
와 코드가 있습니다. 문제는 현재 약간의 실험적인 방법으로 Derived
을 다시 구현할 생각입니다.
class IDerived : public Base
{
public:
virtual float some_other_function() = 0;
virtual float yet_another_function() = 0;
};
그리고 IDerived
에서 상속 할 Derived
이전을 변경 : 내 생각은이 작업을 수행하는 것이 었습니다. 이 종류의 Concrete -> Abstract -> Concrete Inheritance 구조가 C++에서도 허용 되는가?
더 나쁜 것은 원래 Derived
클래스가 프레임 워크 내에서 지속되므로 메모리에서 동일한 구조를 유지해야한다는 것입니다. (이는 IDerived
추상화를 통해 달성하기를 바랬습니다). 새로운 Derived
의 메모리 레이아웃이 같습니까?
마지막 단락은 매우 걱정됩니다. 나는 잘 작동하도록 설계된 C++ 프레임 워크를 상상할 수 없다는 것을 알게되었습니다. 프레임 워크를 올바르게 사용하고 있습니까? – Mankarse
당신은 이것으로부터 어떤 이점을 얻습니까? – Pubby
@Mankarse, 프레임 워크는 잘 설계되지 않았기 때문에 그런 이상한 질문을하고 있습니다. 그러나 그러한 삶은 때로는 프레임 워크가 그들이 무엇을하고 있는지 모르는 사람들에 의해 설계되었습니다. – Shep