C++ 继承 - 将父母改为祖父母



我正在做一些工作的C++项目中遇到了一个问题。对于我缺乏C++OOP知识,我提前道歉。

我有一系列类,它们都来自一个共同的父级,例如:

class child : public parent
{
     public:
        ...
};
我的

问题是我需要修改父级中的一个函数以适应我的代码;不幸的是(虽然我可以访问源代码)父类由其他项目共享,我预期的更改会导致副作用,从而破坏其他人的代码。但是,如果项目管理员批准,我可以进行一些更改 - 如果没有副作用(例如范围),他通常会这样做。

虽然显然我可以复制原始父级,修改它并有效地分支代码,但我真的不想出于可维护性目的这样做。

所以我的问题 - 是否可以让原始父类充当祖父类,并创建一个简单的单函数父类来覆盖祖父函数,并将我的代码更改为从新父级继承 - 所有其他未在新父级中实现的调用都传递给祖父级?如果是这样,我将如何做到这一点(广义上)?还是有更好的解决方案?还是我完全偏离了轨道?

我希望这是清楚的。感谢您的任何帮助,我正在黑暗中摸索C++。

如果您认为该功能仅对一个子项有用,请仅将代码添加到该子项。

如果您认为该功能对更多子类有用,请将代码添加到该父类,但为其指定一个新名称。现有的其他子类不会受此影响。您可以迁移现有子项,以便在允许时使用新功能。

或者,创建一个子类可以暂时使用的 API 函数,而不是类成员函数。同样,现有子类及其用法不会受到此更改的影响。如果其他子类需要利用该功能,则可以一次迁移一个子类。是否可以将 API 函数提升为成员函数可以留作将来的决定。

您可以让其他人更改其类,以便指定的方法virtual:https://en.wikipedia.org/wiki/Virtual_inheritance

然后,您可以在子项中覆盖它,或创建新的公共父项。

最新更新