好的,我有一个包含所有 WinAPI 控件的类,使它们像 Java/C#/.Net 控件一样运行(是的,我知道已经有库可以这样做),看起来像:
class Control
{
public:
//Bunch of other stuff..
virtual HWND GetHandle() const;
};
和一个看起来像这样的派生类:
class MenuBar: public Control
{
public:
//Bunch of other stuff..
virtual HMENU GetHandle() const;
enum class Flags
{
POPUP = MF_POPUP, STRING = MF_STRING
};
};
但是,编译器给了我一个关于重载基类的 GetHandle 函数的错误返回类型的错误。
如何重载GetHandle
以具有不同的返回类型并使其忽略基类的实现?我真的很喜欢这个名字GetHandle()
,不想改变它(虽然这是一个选项)..
还有其他方法吗?我问是因为也许有一种方法可以让它忘记基类有一个实现?