在 C++ 中作为参数传递给函数时,const string & str 和 string const & str 有什么区别

What is the difference between const string & str and string const & str when passed as an argument to a function in c++

我在如下函数参数中使用对 const 字符串的引用传递:

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++中有什么区别?

const T&T const& 在语义上完全相同。就像 const T*T const* 在语义上是一样的,但是 T const*T* const are different.

const关键字是左结合的,但是在"const string &str"中,由于没有left关键字来限定,它适用于他右边的词(so string)。

是一样的,但解析的不一样。