我对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;
^
答案 0 :(得分:6)
string& const name;
也应该失败。引用和指针是不同的东西。
引用不能是const本身,它没有意义。与指针不同,初始化后无法再次绑定引用。
请参阅What are the differences between a pointer variable and a reference variable in C++?