我正在处理的 C++ 项目中遇到问题。对于我缺乏 C++ OOP 知识,我提前表示歉意。
我有一系列的类都继承自一个共同的父类,例如:
class child : public parent
{
public:
...
};
我的问题是我需要修改 parent 中的一个函数以适合我的代码;不幸的是(虽然我可以访问源代码)父类由其他项目共享,我的预期更改会导致副作用,从而破坏其他人的代码。但是,如果项目维护者批准,我可以进行一些更改 - 如果没有副作用(例如范围),他通常会这样做。
虽然显然我可以复制原始父级,修改它并有效地分支代码,但出于可维护性目的我真的不想这样做。
所以我的问题 - 是否有可能让原始父类充当祖 parent ,并创建一个简单的单一功能父类来覆盖祖 parent 函数,并更改我的代码以从新父类继承 - 所有其他调用没有在传递给祖 parent 的新 parent 中实现?如果是这样,我将如何做到这一点(从广义上讲)?或者有更好的解决方案吗?还是我完全偏离了轨道?
我希望这很清楚。感谢您的帮助,我正在用 C++ 在黑暗中摸索。
最佳答案
如果您认为该功能仅对一个 child 有用,请仅将代码添加到该 child 。
如果您认为该功能将对更多 child 有用,请将代码添加到该父类,但给它一个新名称。现有的其他子类不会受此影响。您可以在允许的情况下迁移现有的子项以使用新功能。
或者,创建一个 API 函数,而不是类成员函数,子类暂时可以使用。同样,现有的子类及其用法不会受到此更改的影响。如果其他子类需要利用该功能,您可以一次迁移一个。 API函数是否可以提升为成员函数可以留待以后决定。
关于C++继承 - 将 parent 更改为祖 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902923/