请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

对this指针指向空间的疑问,以及普通成员函数存储为什么可以由this访问?

老师你好,没太明白你所说的普通成员函数通过this指针去访问。
在例子里,shapes[0]的指针指向了栈空间的square类s1变量,一共16个字节,有1个4字节存储了虚函数的虚表指针,1个4字节存储int变量,1个8字节存储了double变量。
不太明白这个this指针的意思,this指针不是指向这个16字节的类变量么,这个类普通成员函数又是存储在什么空间里的呢?是编译时就生成的静态地址么?

正在回答

1回答

你注意我在Hack过程中的ecx值,一般this指针用它来记录,从而能访问类成员信息。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕勒0477221 #1
    老师,你好,我发现子类成员函数里*this的大小和父类成员函数里*this的大小是不一样的。
    在调用display时候其实是当时this是指向{area(), display(), color}这三个变量么?
    回复 有任何疑惑可以回复我~ 2020-04-23 23:04:29
  • quickzhao 回复 提问者 慕勒0477221 #2
    C++是一门细节很繁杂的语言,类的成员函数不占空间,只有成员变量和虚表占空间。我们课程时间没法讲那么细,你感兴趣可以看看《C++对象模型》。
    回复 有任何疑惑可以回复我~ 2020-04-23 23:55:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信