gpt4 book ai didi

c++ - 我可以避免由特定类定义的限定名称吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:19 25 4
gpt4 key购买 nike

假设我有一个 MessageBox 类,如下所示:

class MyMessageBox
{
public:
enum Priority {
Prior_Dialog,
Prior_Warning,
// ...
};

enum Icon {
Icon_Question,
Icon_Exclamation,
// ...
};

enum Button {
Button_Yes,
Button_No,
Button_Cancel,
// ...
};

static void Show(Priority pPriority, Icon pIcon, Button pButton1, Button pButton2);

// ...
};

现在,如果我想抛出一个消息框,我必须为每个标识符输入 MyMessageBox:::

MyMessageBox::Show(MyMessageBox::Prior_Dialog, MyMessageBox::Icon_Question, MyMessageBox::Button_Yes, MyMessageBox::Button_No);

理想情况下,我想要一些非宏解决方案,允许 #include "MyMessageBox.h" 的源文件在任何地方省略 MyMessageBox:: 限定条件。这可能吗?

最佳答案

是的,而且非常简单。如果您不想在类中使用 enum,那么...不要在类中定义它们。

enum Priority {
Prior_Dialog,
Prior_Warning,
// ...
};

enum Icon {
Icon_Question,
Icon_Exclamation,
// ...
};

enum Button {
Button_Yes,
Button_No,
Button_Cancel,
// ...
};

class MyMessageBox
{
public:
static void Show(Priority pPriority, Icon pIcon, Button pButton1, Button pButton2);
// ...
};

关于c++ - 我可以避免由特定类定义的限定名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11958668/

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