如何为C++函数中的结构指定默认值?

rus*_*rce 6 c++ struct function

我有一个结构:

typedef struct {
   double x,y,z;
} XYZ;
Run Code Online (Sandbox Code Playgroud)

我想定义一个这样的函数:

double CalcDisparity(XYZ objposition, 
                     XYZ eyeposition, 
                     double InterOccularDistance = 65.0)
Run Code Online (Sandbox Code Playgroud)

但我似乎找不到为眼睛分配默认值的方法.我怎么能用C++做到这一点?

whe*_*ies 11

它的

struct XYZ{
    XYZ( double _x, double _y, double _z ) : x(_x), y(_y),z(_z){}
    XYZ() : x(0.0), y(42.0), z(0.0){}

    double x, y, z;
};
Run Code Online (Sandbox Code Playgroud)

所以我现在有一个默认的构造函数.然后你这样称呼它:

double CalcDisparity( XYZ objposition = XYZ(),
                      XYZ eyeposition = XYZ(),
                      double interOccularDistance = 65.0 )
Run Code Online (Sandbox Code Playgroud)

但是有一个小技巧:你不能只为第一和第三个参数做一个默认值.还有一件事:C是一种语言,C++是另一种语言.