猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
C ++常量用法说明
const int* const Method3(const int* const&) const;
有人可以解释每个const的用法吗?
慕慕森
浏览 411
回答 3
3回答
摇曳的蔷薇
如果将其重写为完全等效的内容,会更容易理解// v───v───v───v───v───v───v───v───v───v───v───v─┬┐// ││// v──#1 v─#2 v──#3 v─#4 #5 int const * const Method3(int const * const&) const;然后从右到左阅读。#5表示左侧的整个函数声明为const,这表示这一定是成员函数,而不是自由函数。#4表示左边的指针是const(不能更改为指向其他地址)。#3表示int左侧的是const(不得更改为其他值)。#2表示左侧的指针是const。#1表示int的左侧是const。放在一起,您可以将其作为const名为的成员函数读取,该成员函数Method3引用指向的const指针int const(const int如果需要,可以引用,然后返回const指向int const(const int)的指针)。
0
0
0
RISEBY
首先const T等于T const。const int* const因此等于int const * const。读取其中包含许多const标记和指针的表达式时,请始终尝试从右到左读取它们(应用上面的转换之后)。因此,在这种情况下,返回值是指向constint的const指针。在const这里,使指针本身没有意义,因为返回值不是可以修改的左值。const但是,指定为pointee 可以确保调用方不会修改所返回的int(或的数组int)Method3。const int*const&成为int const*const&,因此它是对指向const的const指针int的引用。通过引用传递const指针也没有任何意义-您不能修改引用的值,因为指针为,const并且引用和指针占用相等的存储空间,因此也没有任何空间节省。最后一个const表示该方法未修改该this对象。this方法主体中的指针将具有(理论上的)声明T const * const this。这意味着一个const T*对象将能够调用T::Method3()。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续