Const限定符和&符号

时间:2016-03-05 14:20:39

标签: c++ pointers reference const

我对const限定词感到困惑。我发现并阅读了很多文章和类似问题,例如http://www.cprogramming.com/reference/pointers/const_pointers.html

我不清楚为什么g++会抱怨这个班级成员:

const string& const name;

但它没有抱怨

string& const name;

我的想法是声明一个指向常量字符串值的常量指针。我使用&代替*来避免NULL指针。

我错过了什么?

编译器错误如下:

‘const’ qualifiers cannot be applied to ‘const string& {aka const std::__cxx11::basic_string<char>&}’
  const string& const name;
                      ^

1 个答案:

答案 0 :(得分:6)

string& const name;也应该失败。引用和指针是不同的东西。

引用不能是const本身,它没有意义。与指针不同,初始化后无法再次绑定引用。

gccclang的演示失败。

请参阅What are the differences between a pointer variable and a reference variable in C++?