gpt4 book ai didi

C++ : friends of class and "this" pointer

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:26 25 4
gpt4 key购买 nike

我有一个小问题要问你 :),我知道每个方法都“ secret 地”获取它们所在的某个类的“this”指针,但为什么“友元”函数不会发生这种情况?是因为它们不是类的方法吗?

谁能解释一下整个机器,我对“这个”到底是如何工作的很感兴趣!

提前致谢! :)

最佳答案

  • friend 函数和类仅用于编译器检查的访问控制。
  • friend 函数只是标准函数,因此调用约定不会有任何差异。
  • friend 函数不是任何类的成员,因此没有传递 this 指针(与 static 成员函数一样)

类的非static 成员函数将得到一个隐藏 this 指针(根据 ABI 这通常是第一个参数),static 成员函数不获取 this 指针,因为它们不作用于实例数据。

如何将 this 指针传递给成员函数在很大程度上取决于所使用的 ABI,这取决于体系结构和操作系统。要么将其压入堆栈,要么通过众所周知的寄存器传递。

请考虑阅读“Where is the 'this' pointer stored in computer memory?”。

关于C++ : friends of class and "this" pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19294835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com