向多态对象添加行为

时间:2012-01-25 01:46:20

标签: c++ oop polymorphism

假设我们有以下内容:

abstract class A;

class B : public A;
class C : public A;
....

class Main;

Class Main是使用A,B和C的类。
我们在Main类中有以下代码:

A obj;
....
for(i = 0; i< count; ++i)
{
    obj->Abstract_Function_In_A();        
}

我想更改 A类中的 Abstract_Function_In_A()来获取参数。
问题是,在基类中添加任何新函数意味着
我必须在所有子类中实现新函数,即使有些人不使用它们。

否则,在调用它时它可能无法正常工作。

是否有人知道解决方法,以便我可以添加新函数而无需在所有子类中定义它们?

1 个答案:

答案 0 :(得分:1)

听起来你不希望A类是抽象的,只需在A类中定义“默认”函数(实现和接口)。在继承树中进一步覆盖此函数的类将获得它们的特定行为和类没有得到默认值。