Nar*_*uto 3 c++ variables const
我有一个类名X,"const X a"和"X const a"之间的区别是什么
Jam*_*lis 13
没有.
一个const限定词适用于任何立即是其左.如果它左边没有任何东西那么它适用于它右边的任何东西.
在这种情况下,根本没有区别.
当您有指针或引用时,可能看起来几乎相同的更改很重要.给出如下内容:
T * a;
Run Code Online (Sandbox Code Playgroud)
的位置const(或volatile)相对于所述星号是显著:
T const * a;
T * const a;
Run Code Online (Sandbox Code Playgroud)
第一个说a是指向a的指针const T(即,你不能修改a引用的T对象).第二个说a是一个const指向一个(非const)笔-也就是说,你可以修改什么a点在,但你不能修改指针本身,所以你不能在不同的对象指向它.当然,你也可以做到两件事:
T const * const a;
Run Code Online (Sandbox Code Playgroud)
这意味着您无法更改指针本身或其T引用的对象.