私のグループには、次の構造のコードがあります
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;
};
そして、 oldDerived
を から継承するように変更しIDerived
ます。この種の具象->抽象->具象継承構造はC ++でも許可されていますか?
さらに悪いことに、元のクラスはフレームワーク内で永続化されるため、メモリ内で同じ構造を維持する必要があります (これは、抽象化Derived
することで達成したいと考えていました)。IDerived
新しいDerived
ものは同じメモリ レイアウトを持ちますか?