gpt4 book ai didi

c++ - 在类中初始化 vector

转载 作者:行者123 更新时间:2023-11-28 06:58:29 33 4
gpt4 key购买 nike

是否可以在结构体或类中初始化 vector 。这是一个我想让它工作的例子

class MenuItem {
std::string name; // Name of menu item
void (*func)(); // Function of menu item
MenuPage* subPage; // Pointer to submenu
};

class MenuPage {
std::string menuTitle;
std::vector<MenuItem> menuItems;
};

static const MenuPage menuMain = {
"Main menu",
{{ "Item1", 0, 0 },
{ "Item2", 0, 0 },
{ "Item3", 0, 0 }}
};

此结构应该表示 Windows 中的动态控制台菜单。我使用单例模式来访问菜单。 MenuPage* 类型的 membervar 被保存为对象中的菜单入口点。

所以,如果不可能,您可以建议哪些替代方法?

最佳答案

将这些成员设置为public,它将在 C++11 中初始化。否则你可以使用初始化列表和构造函数:

class MenuPage {
std::string menuTitle;
std::vector<MenuItem> menuItems;
public:
MenuPage (std::string s, std::vector<MenuItem> m) :
menuTitle(s), menuItems(m) {}
};

static const MenuPage menuMain (
"Main menu",
{{ "Item1", 0, 0 },
{ "Item2", 0, 0 },
{ "Item3", 0, 0 }}
);

请注意,您应该对 MenuItem 执行相同的操作。

关于c++ - 在类中初始化 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864667/

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