社区
C++ 语言
帖子详情
关于this指针!!
xuyueyanghunan
2009-07-28 09:49:42
为什么在const成员函数中,this指针是指向const类型的指针???
大家能解释一下吗?
...全文
140
10
打赏
收藏
关于this指针!!
为什么在const成员函数中,this指针是指向const类型的指针??? 大家能解释一下吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuyueyanghunan
2009-07-28
打赏
举报
回复
谢谢理解了!!
ljt3969636
2009-07-28
打赏
举报
回复
这么想一个const修饰普通的变量,干什么不想变量被修改吧?再想想,const变量为什么只能被const指针指,而不能被非const指针指?因为非const指针可以修改指向的对象而我们这个const变量恰恰不想由于变量被非const指而被通过非const指针修改吧?
那么const函数的目的是什么呢?const函数的这种目和const this,不像普通的const变量和指向const的指针的关系吗?这样很容易理解啊~!
xuyueyanghunan
2009-07-28
打赏
举报
回复
struct test
{
int * p;
。。。
void func()const {*p = 1;}
};
规定真的有足够理由么,真的需要足够理由么,还是规定只需要当作一个规定。
谢谢,觉悟了!!
taodm
2009-07-28
打赏
举报
回复
struct test
{
int * p;
。。。
void func()const {*p = 1;}
};
规定真的有足够理由么,真的需要足够理由么,还是规定只需要当作一个规定。
herman~~
2009-07-28
打赏
举报
回复
标准规定的东东 假设不是const类型的指针,那么定义const void fun();
fun可以随意修改成员函数,也就失去了意义
xuyueyanghunan
2009-07-28
打赏
举报
回复
规定也要有个理由啊!
xuyueyanghunan
2009-07-28
打赏
举报
回复
我也在看C++primer,但是不明白这一点!!
illuminati
2009-07-28
打赏
举报
回复
首先推荐你看一下C++primer,讲的很详细
因为在const成员函数中,不能改变对象
在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const 指针。可以改变 this 所指向的值,但不能改变 this 所保存的地址。在 const 成员函数中,this 的类型是一个指向 const 类类型对象的 const 指针。既不能改变 this 所指向的对象,也不能改变 this 所保存的地址。
taodm
2009-07-28
打赏
举报
回复
规定。
guoxingnuli
2009-07-28
打赏
举报
回复
说的好
C语言模拟this
指针
,C++中的this
指针
this
指针
一个类当中,有一个很隐蔽的特殊
指针
,它就是—this
指针
!为什么说它特殊?因为只要定义一个类,系统就会预定义个名字叫做this名且指向当前对象的
指针
。虽然我们看不到但却可以使用它。比如,我们来看一个时钟类的一个成员函数,用来设置时间传值的代码:intClock::SetTime(inth,intm,ints){H=h;M=m;S=s;}可以看到Clock类本身的成员...
震惊!struct中竟然也有this
指针
!
今天我也冒充一下标题党。呵呵。 用g++编译代码时,struct中也有this
指针
。 我的g++版本:g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4 以下代码只可用g++编译,不可以用gcc编译。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include<stdio.h>...
C++ this
指针
this
指针
引言: 首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个
指针
:this
指针
,通过this
指针
来访问自己的地址。 注意: this
指针
并不是对象的一部分,this
指针
所占的内存大小是不会反应在sizeof操作符上的。this
指针
的类型取决于...
this
指针
小总结
在类的非静态成员函数中,this
指针
是一个指向调用该函数的对象的
指针
。注意,this
指针
是常量
指针
,你不能改变this
指针
使其指向其他对象,但你可以改变它所指向的对象的内容。在C++中,this
指针
只在类的非静态成员函数中存在,而在全局范围内,是没有this
指针
的。在C++中,this
指针
是一个隐式的、非静态的成员
指针
,它指向调用它的对象的地址。每个非静态成员函数都含有一个this
指针
,该
指针
在成员函数中用于访问调用它的对象的成员。当成员函数被调用时,this
指针
被自动绑定到调用该函数的对象的地址上。
C++中关于this
指针
的理解
关于this
指针
的解析,N多年前我就知道this
指针
!我也看了很多关于this
指针
的解释和解析!以前我以为我懂了!因为我去网上收索了下,发现都讲的是那同样的一句话!this
指针
是为了区别一个类定义的两个或是多个对象,在编译器编译过程中!自动加入的!我看了也以为我懂了!呵呵!其实是我受骗了!因为很多人应该都没明白为什么要有this
指针
吧! 我在看这本书的过程中发现了,原来this
指针
就是一
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章