我在函数参数中使用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 ++中这两种定义的区别是什么?
答案 0 :(得分:7)
const T&
和T const&
在语义上完全相同。就像const T*
和T const*
在语义上相同,但T const*
和T* const
are different。
答案 1 :(得分:4)
const关键字是左关联的,但是在“const string& str”中,因为没有left关键字来限定,它适用于右边的单词(所以字符串)。
它是相同的,但它没有被解析相同。