一分钟考考你 —— 测试题10

希望_睿智
后端领域优质创作者
2023-04-15 11:23:53

下面这段代码的输出是多少?

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博客

...全文
成就一亿技术人!
拼手气红包 15.00元
1070 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
希望_睿智 2023-04-15
  • 打赏
  • 举报
回复

reinterpret_cast属于逐位拷贝,会覆盖base对象的第一个成员变量m_nData1,因此输出:99,88。
可以进专栏详细了解相关知识:https://blog.csdn.net/hope_wisdom/category_12187050.html?spm=1001.2014.3001.5482

qq_29708431 2023-04-15
  • 打赏
  • 举报
回复 1

99,88?

qq_29708431 2023-04-15
  • 打赏
  • 举报
回复

98,99 ?

793

社区成员

发帖
与我相关
我的任务
社区描述
近二十年行业经验和技术积累,帮助新手学习、沟通、交流、成长、进步,从新手跨越成长为大牛
c++c语言开发语言 个人社区 安徽省·合肥市
社区管理员
  • 希望_睿智
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  • 坚持学习和沟通才能进步。
  • 老手带新手,进步天天有。
  • 细线常锯木必断,檐水久滴石必穿。
  • 不积跬步,无以至千里;不积小流,无以成江海。

试试用AI创作助手写篇文章吧