C++ 友元函数在内存位置上有何不同?
c++ how does friend function differs in memory location?
我试图理解将函数定义为friend function
如何影响其在内存(RAM(中的位置。
例如,每个类都有一个包含其所有方法和函数的表。此外,虚拟功能放置在vtable
中。
friend
函数属于哪里?
我担心的原因是,由于 [递归] 函数在我的 c++ 代码中通过多个线程被大量调用,最终我得到"v'table 损坏运行时异常"。 这是内存损坏的迹象(例如,我在这里看到的(。
此外,将此函数声明为常规的类外函数时,异常仍然存在。
但是,当声明该函数friend
时(这是一个糟糕的设计,但为了实验(,该异常不再弹出。
因此,我关于友元函数的内存位置的问题。
>friend
与编译器、链接器或运行时加载器放置函数的位置无关,它只是一个关键字,告诉编译器该函数可以避开类的可见性规则。
即使friend
函数在类中内联定义,它仍被视为全局非成员函数。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 在C++中,我如何接受不同于同一行的用户输入
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 如何创建从同一类继承的不同对象的向量
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 求最大元素位置的分治算法
- 获取从C++中同一类中的构造函数调用的方法返回的值
- C++如何将同一类的实例作为属性
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置