【发布时间】:2013-02-24 19:42:53
【问题描述】:
假设我有以下结构:
struct myStruct
{
int x;
int y;
int z;
int w;
};
我想在调用以下函数时将此结构初始化为默认值。如果有帮助,我正在寻找一个简单的零初始化。
void myFunc(myStruct param={0,0,0,0})
{
...
}
然而,这段代码给了我编译错误。我试过VS2003和VS2008。
注意:我看过其他提到使用构造函数的答案。但是我希望用户查看我用于初始化的值。
【问题讨论】:
-
myStruct param=myStruct{0,0,0,0}? -
@HighCommander4 不。
-
如果您需要其他程序员查看
myStruct的默认值(这是您希望将其定义为您所拥有的唯一原因),我会将该信息添加为注释,而不是在参数列表中创建一个默认结构 - 注释可能更优雅一些。或者,您可以改为传递一个指向myStruct的指针,默认参数值为 NULL,然后在方法内检查 NULL 并在需要时创建一个空结构。 -
@PLPiper 我可能最终会这样做,但我想知道是否有办法解决这个问题。
-
我假设对 VS2003/VS2008 的限制是在参数集中使用初始化列表的限制因素。函数呢?
标签: c++ struct initialization default-value static-initialization