c++ - 如何为 C++ 函数中的结构分配默认值?

标签 c++ function struct

我有一个结构:

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/

相关文章:

c++ - 重复的 symbol_main

c++ - 如何使用 windows.h 的函数更改 C++ 中的控制台字体大小?

python - 如何优雅地发出自定义断言错误?

MySQL表用FLOOR函数分区(不允许分区函数)?

swift - 创建结构体实例时,是否必须为 init() 方法中初始化的所有属性参数发送参数?

c++ - 像这样重新安装一对引用文献合法吗?

C++ - 错误 C3646 : unknown override specifier

php - 这个功能有什么问题?

c++ - 如何将数据从一个结构链接到另一个结构

c - qsort() 不对结构中的数据进行排序