【发布时间】:2019-04-02 07:47:36
【问题描述】:
也许这个问题以前有人问过,但我就是不知道应该怎么问这个问题
我有以下代码。我不知道将参数作为 const 修饰符传递然后传递给内部构造函数的基本原理是什么。
bool somefunction(const cv::Vec4i& l1_c, const cv::Vec4i& l2_c)
{
cv::Vec4i l1(l1_c), l2(l2_c); // why code it in such a manner?
// what the advantages?
...... other codes but l1 and l2
is used as values ........
}
如下使用 cv::Vec4i& l1c 是不是更简单
bool somefunction(cv::Vec4i& l1_c, cv::Vec4i& l2_c)
{
...... other codes and l1_c and l2_c
is used as values .........
}
问候
【问题讨论】:
-
您不希望在函数内部修改参数吗?
-
我建议阅读 Scott Meyer 的 Effective C++ 中的第 3 条(“尽可能使用
const”)。 -
可行的替代方案是
bool somefunction(cv::Vec4i l1_c, cv::Vec4i l2_c),因为您无论如何都要复制。 -
感谢您的回答/评论。只是为了让问题更清楚.. 变量没有被更改,但它的值正在被使用。
标签: c++