我不知道该在 ??? 点放什么。这是代码:
class A
{
public:
A(std::vector <std::string> init);
}
class B
{
public:
B();
private:
A a;
}
B::B() : a(???)
{
}
如果你想要一些背景,A类是带有按钮标题向量的菜单,而B类是管理菜单和其他一些东西的MenuState超类。或者只是我的设计存在缺陷?
答案 0 :(得分:4)
只需在std::vector<std::string>()
写下???
。这样你就会有一个空列表。否则,如果你想在构造时填写它,你可以在那里写一个函数调用,如generateButtonTitles()
,并在适当的位置定义该函数。
B::B() : a(generateButtonTitles())
{
}
如果您使用符合C ++ 11的编译器,那么您还可以通过以下方式传递初始化列表:
B::B() : a({ "File", "Edit", "Options", "Help" })
{
}