C++ 常量限定符和符号
我对C++ 常量限定符和符号,c++,pointers,reference,constants,C++,Pointers,Reference,Constants,我对const限定符感到困惑。我发现并阅读了很多文章和类似的问题,例如 我不清楚的是为什么g++抱怨这个班级成员: const string& const name; 但它并没有抱怨 string& const name; 我的想法是声明一个指向常量字符串值的常量指针。我使用&而不是*来避免NULL指针 我错过了什么 编译器错误如下: ‘const’ qualifiers cannot be applied to ‘const string& {aka const s
const
限定符感到困惑。我发现并阅读了很多文章和类似的问题,例如
我不清楚的是为什么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;
^
“const”限定符不能应用于“const string&{aka const std::_cxx11::basic_string&}”
常量字符串和常量名称;
^
字符串和常量名称代码>也应该失败。引用和指针是不同的东西
引用不能是常量本身,它没有意义。和指针不同,初始化后无法再次绑定引用
与和的演示失败
请参见“我的想法是声明一个常量指针…”-&
根本不声明指针。也许编译器说的是“你告诉过我一次,为什么…”你混淆了引用和指针。在你最喜欢的C++参考书索引中查找这些词。“科迪格雷,他没有意识到他有一本C++参考书,认为这是一个指针式的书,因为整个问题的前提被打破了。“它不会抱怨string&const name;
”它肯定会抱怨。你忘了告诉他缺少什么,比如指针和引用之间的区别。