<>里,请问这句话是什么意思?

mxic 2002-09-15 04:57:20
“对象的this指针不是对象本身的一部分,即this指针不在该对象进行sizeof操作的结果中体现。”

我看不明白啊!
...全文
62 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandrowjw 2002-09-16
  • 打赏
  • 举报
回复
this是一个r-value,所以它不能被赋值。
估计是编译器的限制。
wangcanhui 2002-09-16
  • 打赏
  • 举报
回复
this实际上是对象的存储地址,与对象本身没有关系
jjj007 2002-09-15
  • 打赏
  • 举报
回复
同意lx_cyh(hi) 但有没有办法人为地改变this的值呢?

我想不会吧,如果改了,它指的对象也就改了吧!
9999999999 2002-09-15
  • 打赏
  • 举报
回复
同意lx_cyh(hi) 但有没有办法人为地改变this的值呢?
waterstony 2002-09-15
  • 打赏
  • 举报
回复
编译器维护this,当然有内存存放,只是不让你看到而已,要不然它还能放this指针到硬盘上?
lsaturn 2002-09-15
  • 打赏
  • 举报
回复
楼上的,不能这么理解
this不算入对象,但并不是不占内存。
mxic 2002-09-15
  • 打赏
  • 举报
回复
既然:this指针是编译器加上的

那是不是可以理解为this指针本身并不占用内存,只是对类的一个实例的首地址的引用?
floatbit 2002-09-15
  • 打赏
  • 举报
回复
像这样的贴子才能解决问题.
好.
lx_cyh 2002-09-15
  • 打赏
  • 举报
回复
class MyObject{
int a;
float b;
public:
.....
};
MyObject temp;
temp对象需要空间放置a,b成员,但不需要空间放置this指针.实际每当有一个对象,它就要分配一个空间,就可以就有指向该空间的指针存在.以temp对象来说,一但有temp对象,则 &temp一定存在且与temp一一对应,这就是this指针.&temp会变吗?
不会..this的值会变吗?不会.
flyooh 2002-09-15
  • 打赏
  • 举报
回复
this指针就是一个类的一个实例的首地址,不是某个类的一个成员
wwlxmai 2002-09-15
  • 打赏
  • 举报
回复
对,是编译器在运行时,
用来标识类的对象的
winco 2002-09-15
  • 打赏
  • 举报
回复
同意楼上。this是编译器加上去的。
lanfengjiyue 2002-09-15
  • 打赏
  • 举报
回复
就是说对象this指针不包括在定义对象的内存段中,如
class name
{
int a;
int b;
int c;
}
name N;
N 蕴含this指针,但sizeof(N)= 12;this指针不占N中的内存。
cwanter 2002-09-15
  • 打赏
  • 举报
回复
就是说对象中没有this指针这4字节。this指针是编译器加上的。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧