成员初始化列表与默认参数

5

成员初始化列表是否支持使用默认参数?

Vector3::Vector3(double xI, double yI, double zI)
: x(xI=0), y(yI=0), z(zI=0)
{
}

构造函数总是将x、y和z设置为0,即使您在调用时设置了参数。

3
为什么不直接使用Vector3::Vector3(double xI=0, double yI=0, double zI=0) ...呢? - Oliver Charlesworth
2个回答

9
Vector3(double xI=0, double yI=0, double zI=0);  

Vector3::Vector3(double xI, double yI, double zI)
    : x(xI), y(yI), z(zI)
    {
    }

此外,如果你想知道你的代码在做什么,它只是将你的参数设置为0,然后将它们的值(现在为0)传递以初始化成员。


不起作用。错误:调用Vector3::Vector3(double, double)时没有匹配的函数 - Daniel Node.js
你的构造函数是否可访问?(例如public?) - matt
@matt 啊,我找到了。你需要从实现中删除=0部分,只在声明中保留它。 - Daniel Node.js

1
赋值运算符=总是返回它分配给左侧变量的内容,在您的情况下,它返回0,该值被分配给xyz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接