当从不同位置访问类方法时,类成员的位置会发生变化
Location of class member changes when class method is accessed from different places
我遇到了一个问题,类成员的位置会根据函数的运行时间而更改。
当构造函数正在运行时,成员的位置为0x008bc044。随后调用一个成员函数,并且同一成员的位置仍然是0x008bc044。稍后,成员函数将再次运行,但同一成员的位置将更改为0x008bc048。班上的所有其他成员都不会改变那里的位置。我不会把这个类转换成另一种类型。
这导致了一个问题,因为该函数现在正在读取随机数据并导致不正确的输出。
我使用的是Visual Studio 2012 11.0.60315.01更新2。
visual studio调试器的相册
您正在运行一个32位系统,有一个派生类,并显示基类的指针和派生类的指针。此外,你还有一个重新诠释或c风格的演员阵容。
相关文章:
- 内存中类位置的成员是否取决于类成员在类定义中的位置?
- 处于默认参数位置的 Lambda 无法访问好友成员。这是编译器错误吗?
- POD 结构(相同类型的成员):成员是否位于连续的内存位置?
- 非常量调用 const 成员函数失败,只读位置C++
- 基本指针如何能够在派生的类实例中了解基本成员的内存位置
- 如何在G 代码中找到给定的成员函数或CTOR的所有位置
- 是STD :: Vector,由于其分配运算符移动其成员的位置,因此是一种非常规类型
- C++类成员和内存位置
- 类成员和成员函数的内存位置
- 类定义中定义的成员函数的编译方式是否与C++中其他位置定义的成员函数不同
- 在特定位置分配多态类成员
- 测试静态常量成员的存储位置
- C++ - 将两个子类的成员放在共同的位置
- 初始化静态成员变量值的正确位置
- 易失性关键字在C++中成员函数声明中的位置
- 当使用new()创建数组时,数组的所有成员都位于同一内存位置
- 当从不同位置访问类方法时,类成员的位置会发生变化
- 确定一个位置是否是特定列表的成员
- 类的成员变量在堆中的存储位置
- 存储成员函数的位置