1

我在如下函数参数中使用对 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++中这两种定义有什么区别?

4

2 回答 2

7

const T&并且T const&在语义上是完全相同的东西。就像const T*T const*在语义上是一样的,但是T const*T* const 是不同的

于 2016-08-03T09:31:37.180 回答
4

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

它是相同的,但它的解析不同。

于 2016-08-03T09:33:03.273 回答