对象名.方法名() 和对象名.变量

对象名.方法名() 比如p1.speak()
点操作是根据对象p1 变为 Person 类然后改为Person::speak() 然后再将p1放入方法实参中。
可以看成 Person::speak(p1) 也就是在p1 这个对象的Person类的成员方法 再在实参传入p1地址也就是给this
p1.month 中间点理解为加偏移量的过程
这个方法也可以看成偏移量
p1.spesk()
应该是这样
p1.speak()《==》 p1是我们这个Person::speak()方法的第一个参数 。相当于逗号分隔符 为了区分这个特殊的参数我们放在方法名之前所以用p1. 为了将方法名和对象名地址(方法参数)分割开,.区分对象名地址和方法名。这样编译器就能一个一个识别token 变量和方法 之前用括号和逗号进行分隔。放在第一个位置就是用.进行分隔 区分函数参数 和方法名
对于方法的圆括号是调用函数的运算符 也是 分割方法名 和方法参数的分隔符
就是 call 方法名就是完事了 到方法去call 这个真正方法的地址就好了
https://blog.csdn.net/weixin_45651336/article/details/115221088
因为a.Person::fun(b) 其实就是Person::fun(a,b)底层汇编告诉了你
直接理解为编译时候类名地址加方法地址 编译程序自动计算 编译阶段 从汇编-s 也就是从.c或.java到-s文本的时候一直就已经有了加地址的文本描述 到最后-o 生成exe 时候仅仅翻译下就好了
然后Call 这个加好的类名地址和方法地址之和的地址就好了
gpt
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值