Virtual inheritance to generalise code among two different abstract child classes

I have an interface which is behavioral in the sense that provides some functionality that can be applied to a certain data shape. For example, a hierarchical data structure.

Firstly, let us define the base class

class Base {

    virtual void general_functionality() = 0;
    virtual void general_functionality1() = 0;
};

Then, I have another abstract class which inherits from Base but it also add a few more interfaces that are specific e.g a dynamic hierarchical data structure (data that can be altered by having it synced to a Database for example)

   class CommonBaseForDynamicApp : public Base {

    virtual void apply_dynamic_logic() = 0;
};

Now let us look at the first implementation where we have a Json based data structure. (implementation code left)

class CommonBaseForJsonDynamicAppImpl1 : public CommonBaseForDynamicApp {

    void apply_dynamic_logic() override {};
    void general_functionality() override {};
    void general_functionality1() override {};
};

And we can have another like Yaml based

class CommonBaseForYamlDynamicAppImpl1 : public CommonBaseForDynamicApp {

    void apply_dynamic_logic() override {};
    void general_functionality() override {};
    void general_functionality1() override {};
};

Now we also want to support Json based data structure where the underlaying data won’t be e.g. externally connected to e.g. a DB. Therefore, I will now directly inherit from Base again.

class CommonBaseForJsonStaticApp : public Base {

    void general_functionality() override {};// Same impl as CommonBaseForJsonDynamicAppImpl1::general_functionality;
    void general_functionality1() override {};// Same impl as CommonBaseForJsonDynamicAppImpl1::general_functionality1;
};

As you can see from above, the design is abit problematic due to the fact that we got duplication of code. Many of the static and dynamic applications overlap.

The first solution I thought of is to make use of virtual inheritance. Here, we implement a class that is directly inherited from Base

class CommonForJson : public Base {
    void general_functionality() override {};
    void general_functionality1() override {};
};

Then, our static case could directly inherit from that (in this case it does not have to since no additional code is needed).

class CommonBaseForJsonStaticApp : public CommonForJson {

};

For the dynamic case we must inherit from two places namely and make use of virtual inheritance. :

class CommonBaseForJsonDynamicAppImpl : public CommonBaseForDynamicApp, virtual CommonForJson {
    void apply_dynamic_logic() override {};
};

While the above will work, I suspect this type of inheritance and tight coupling might create problems in the long run. So I want to ask whether the above issue has alternative design patterns which are more ideal – I assume this problem might have been faced by others as well.
We are using c++-20

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật