在 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)。
是一样的,但解析的不一样。
我在如下函数参数中使用对 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)。
是一样的,但解析的不一样。