通过const传递引用的理由是什么?

时间:2019-04-02 07:47:37

标签: c++

也许这个问题曾经被问过,但是我只是不知道应该怎么问这个问题

我有以下代码。我不知道将参数作为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 .........
 }

致谢

1 个答案:

答案 0 :(得分:0)

这两者之间有根本的区别,即您不能更改常量版本。此外,您可以将临时变量传递给恒定版本,但不能传递给非恒定版本。