C++函数调用后不需要的额外按引用传递参数的模式?
C++ pattern for extra pass-by-reference arguments that aren't needed after the function call?
是否有一种首选模式用于在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()而定义的变量的额外声明来扰乱我的代码?
在这种特定情况下,您可以为任何不需要结果的out参数传递nullptr
。请参阅OpenCV文档(阅读文档总是很好的)。
如果参数不是可选的,则需要声明局部变量并传递它们的地址。如果您不希望这会打乱您的代码,请编写一个辅助函数来封装混乱的代码。
-
如果你可以控制编写函数,你可以使用可变长度的参数围绕传递可变数量的参数
-
如果你不这样做,那么一个想法是编写易于使用的包装器,为你创建假人,并将包装器称为
相关文章:
- 通过常量引用传递参数的矩阵模板类
- 通过引用传递参数时C++类型转换
- 按值传递变量与按引用传递变量具有相同的结果
- 获取 std::函数以推断按引用传递/按值传递
- C++/11 auto 关键字是在更有效时推导参数进行按引用传递,还是始终按值传递?
- 使用 enable_if 在按值传递与按引用传递之间更改函数声明
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 按引用传递和按地址传递之间的差异
- C++按引用传递还是按值传递?
- 可移动但不可复制的对象:按值传递还是按引用传递?
- 使用增量运算符按引用传递
- 按引用传递函数参数
- 如果可能,C++按右值引用传递参数,否则复制左值引用
- 执行同时使用按引用传递和按值传递参数的程序时出现问题
- 混合按引用传递和按值传递到可变参数模板函数有效
- 当按引用传递参数存储在被调用方对象中,然后被调用方删除时会发生什么情况
- C++函数调用后不需要的额外按引用传递参数的模式?
- C++:如何决定是按引用还是按值传递参数
- 当我按值传递参数时,c++构建消息显示一个引用参数
- c++中引用和按引用传递参数的区别