我的小组的代码具有以下结构
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;
};
然后将旧的Derived
改为继承自IDerived
。这种具体->抽象->具体继承结构在C++中是否允许?
更糟糕的是,原来的Derived
类是在框架内持久化的,所以它必须在内存中保持相同的结构(我希望通过IDerived
抽象来实现)。新Derived
的内存布局是否相同?