在 C++ 中定义一次性变量以传递给通过引用获取参数的函数是否有首选模式?一个例子是使用 openCV 的 minmaxLoc 函数:
void minMaxLoc(const Mat& src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, const Mat& mask=Mat())
该函数根据最小/最大强度值和位置更改 minVal、maxVal、minLoc、maxLoc 的值。
我可以为所有参数声明虚拟变量,但我实际上只需要 maxLoc。是否有一个首选的 C++ 模式,这样我只声明 maxLoc,而不用我为调用 minMaxLoc() 而定义的额外变量声明使我的代码困惑?
最佳答案
在这种特定情况下,您可以为不需要其结果的任何输出参数传递 nullptr
。参见 the OpenCV documentation (阅读文档总是好的)。
如果参数不是可选的,则需要声明局部变量并传递它们的地址。如果您不希望这让您的代码变得困惑,请编写一个辅助函数来封装困惑。
关于函数调用后不需要的额外传递引用参数的 C++ 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572810/