相关疑难解决方法(0)

在没有显式调用的情况下,在子方法之前强制执行父方法

我正在开发一个 c++ 应用程序,但我面临一个问题:我有一个从抽象类 A 派生的类 B,它具有一些事件处理方法。第三个类 C 派生自 B,并且必须重新实现一些 B 方法。有没有办法在调用 C 的方法之前隐式调用 B 的方法?

类图:

class A
{
    virtual void OnKeyPress(event e)=0;
};
class B : public A
{
    virtual void OnKeyPress(event e)
    {
    print("Keypressed: "+e)
    };
};
class C : public B
{
    void OnKeyPress(event e)
    {
    //DoSomething
    }
}
Run Code Online (Sandbox Code Playgroud)

我想出的解决方法之一是使用 C::foo() 中的 B::foo() 从 C 调用父方法。这是可行的,但开发人员需要记住在方法的主体中添加调用。

另一种方法是定义一个新的虚拟方法,子进程将覆盖该方法,父进程将在其“OnKeyPress”方法中调用该方法。

谢谢,3mpty。

c++ oop inheritance

3
推荐指数
1
解决办法
2565
查看次数

标签 统计

c++ ×1

inheritance ×1

oop ×1