793
社区成员




下面这段代码的输出是多少?
class CBase
{
public:
CBase(int nData1, int nData2) : m_nData1(nData1), m_nData2(nData2)
{
NULL;
}
int GetData1() const { return m_nData1; }
int GetData2() const { return m_nData2; }
private:
int m_nData1;
int m_nData2;
};
CBase base(66, 88);
int *pTemp = reinterpret_cast<int *>(&base);
*pTemp = 99;
std::cout << base.GetData1() << ", " << base.GetData2() << std::endl;
不清楚相关知识点的,可以直接移步至专栏文章学习:(27条消息) 6 使用强制类型转换的注意事项_hope_wisdom的博客-CSDN博客
reinterpret_cast属于逐位拷贝,会覆盖base对象的第一个成员变量m_nData1,因此输出:99,88。
可以进专栏详细了解相关知识:https://blog.csdn.net/hope_wisdom/category_12187050.html?spm=1001.2014.3001.5482
99,88?
98,99 ?