use*_*624 5 c++ oop inheritance multiple-inheritance
我有A和B类.现在我需要编写一个新的C类,它将在A和B中使用一些字段和方法,但不是全部.(我将使用A和B中大约50%的东西).
现在我正在考虑从A和B继承.但这将使C包含许多没有意义的字段和方法.
基本上我只是为了代码重用而使用继承,否则我将不得不从A和B复制并粘贴多行代码.
这种做法真的很糟糕吗?有不同的方法吗?
谢谢!
继承没有"是一半"的概念,所以它绝对不是去这里的方式.听起来这是构图的主要案例.
它听起来像A并且B有不止一个"功能",因为它们中的一半都足以组成一个C.
我不知道这是适合你的情况,但考虑打破了分成两个部分,A1并A2与所需的功能C中A1.然后做同样的B进入B1和B2.
A然后将组合物A1和A2,B将组合物B1和B2和C将组合物A1和B1.没有任何必要的功能或数据.
这是坏的。仅当逻辑上有意义时才使用继承。
使用组合代替(private继承是组合的一种形式,但最好还是老派):
class C
{
A a;
B b;
}
Run Code Online (Sandbox Code Playgroud)
如果C不是由A和组成B,您也可以保留指针,这样 的大小C不会增加。