gpt4 book ai didi

c++ - 覆盖基类返回类型

转载 作者:行者123 更新时间:2023-11-30 04:24:16 25 4
gpt4 key购买 nike

我有一个 Button 类,如下所示:

class Button {    
protected:
SDL_Rect box;

public:
Button(string id, int x, int y, int w, int h);
~Button();
virtual void handleEvent(SDL_Event event);
};

我有一种特殊的按钮,MyButton:

class MyButton : public Button {    
public:
MyButton(string id, int x, int y, int w, int h);
~MyButton();
void handleEvent(SDL_Event event);
};

问题是,我需要 MyButton::handleEvent() 方法返回 int 而不是 void。执行此操作最优雅的方法是什么?

编辑:我需要这个的原因是因为我需要知道何时按下 MyButton 以便在其他类中执行其他操作。

最佳答案

毕竟继承的概念 MyButtonButton 的一个实例。这意味着您已经在 MyButton 中定义了一个 handleEvent 方法,我们不能使用具有相同名称和两种不同返回类型的方法。

这意味着如果您想要一个返回整数的方法,您可以使用整数引用重载 MyButton 中的handleEvent 方法参数,您可以在引用中设置它的值。

class MyButton : public Button {    
public:
MyButton(string id, int x, int y, int w, int h);
~MyButton();
void handleEvent(SDL_Event event, int& out_param);
};

关于c++ - 覆盖基类返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com