这是我正在尝试做的事情:
struct Foo
{
Foo(int id, string name) : id(id), name(name) {}
int id;
string name;
};
Foo foo[] = {(1, "one"), (2, "two")};
失败,“无法从const char *转换为Foo”。我假设Foo
将被隐式构造。这可能吗?我正在使用VS2010。
答案 0 :(得分:3)
是的,您可以使用以下语法(C ++ 11):
Foo foo[] = { {1, "one"}, {2, "two"}};
或:
Foo foo[] = { Foo(1, "one"), Foo(2, "two")};
答案 1 :(得分:2)
在C ++ 11中使用以下语法:
Foo foo[] = { {1, "one" }, { 2, "two" } };
答案 2 :(得分:1)
你可以使用
Foo foo[] = {Foo(1, "one"), Foo(2, "two")};