aja*_*ari 2 c++ inheritance virtual-inheritance
我有两个班级A班和B班.我想B类拥有的功能A级加上它自己的一些更多的功能.执行此操作的一种非常简单的方法是从A类继承B 类.但出于某些具体实施原因,我不能这样做.
我想到了另一个解决方案,我将在其中创建另一个包含所有虚函数的类C.的类A和B将继承C类.的类A将包含虚拟功能和实现B类也可以定义一组相同的功能,因此B类将具有功能A类.这是最佳解决方案吗?除了从A 类直接继承B 类之外,还有比这更好的解决方案吗?
ale*_*nis 11
你在寻找什么叫做Composition(over Inheritance).
面向对象编程中的继承(或复合重用原则)组合是一种技术,通过包含实现所需功能而不是通过继承的其他类,类可以实现多态行为和代码重用.
这意味着您可以包含一个实例,而不是class B继承.这也是很好的编码实践,以避免和之间的紧密耦合.class Aclass Bclass Aclass Aclass B