const string&的区别是什么? str和string const& str作为参数传递给c ++中的函数

时间:2016-08-03 09:29:06

标签: c++ parameter-passing const string-constant

我在函数参数中使用pass to reference to const string:

class Super
{
   void alignment(const string & str);
};

void Super::alignment(const string & str)
{
  //do some stuff
}

现在,如果我使用如下,它会得到相同的结果:

void Super::alignment(string const & str)
{
  //do some stuff
}

c ++中这两种定义的区别是什么?

2 个答案:

答案 0 :(得分:7)

const T&T const&在语义上完全相同。就像const T*T const*在语义上相同,但T const*T* const are different

答案 1 :(得分:4)

const关键字是左关联的,但是在“const string& str”中,因为没有left关键字来限定,它适用于右边的单词(所以字符串)。

它是相同的,但它没有被解析相同。

相关问题