我有一个结构:
typedef struct {
double x,y,z;
} XYZ;
我想定义一个这样的函数:
double CalcDisparity(XYZ objposition,
XYZ eyeposition,
double InterOccularDistance = 65.0)
但我似乎无法找到一种方法来为 eyeposition 分配默认值。我如何在 C++ 中执行此操作?
最佳答案
是
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;
};
所以我现在有一个默认的构造函数。然后你这样调用它:
double CalcDisparity( XYZ objposition = XYZ(),
XYZ eyeposition = XYZ(),
double interOccularDistance = 65.0 )
但是有一个小技巧:您不能只为第一个和第三个参数设置默认值。还有一点:C 是一种语言,C++ 是另一种语言。
关于c++ - 如何为 C++ 函数中的结构分配默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688091/