我一直在使用初始化列表来实例化结构的实例,但现在想添加一个默认构造函数。
struct Size {
unsigned int width;
unsigned int height;
};
void SizeFunc(Size const &size) { }
int main() {
SizeFunc({1024, 768}); // OK.
}
不幸的是,在使用初始化列表进行实例化时,添加默认构造函数会导致错误。
struct Size {
Size() : width(1920), height(1080) { }
unsigned int width;
unsigned int height;
};
void SizeFunc(Size const &size) { }
int main() {
Size size; // OK.
SizeFunc({1024, 768}); // error: no matching function for call to
// 'Size::Size(<brace-enclosed initializer list>)'
}
我需要添加什么构造函数才能使其工作?我尝试过使用带有 std::initializer_list 的构造函数,但到目前为止还没有成功。