C++代码理解 (强制指针转换)
2024-08-27 15:18:16
#include<iostream>
using namespace std;
class A
{
public:
A()
{
a=;
b=;
c=;
f=;
}
private:
int a;
double b;
int c;
double f;
};
class B
{
public:
B()
{
d=;
e=;
}
void print()
{
cout<<e<<endl;
//cout<<sizeof(d)<<endl;
//cout<<sizeof(e)<<endl;
}
private:
int d;
double e;
};
int main(int argc, char* argv[])
{
A a;
B* pb= (B*)(&a);//这里必须要强制转换
//B pb;
(pb+)->print()<<endl;
(pb+)->print()<<endl;
//pb.print();
return ;
}
以上代码输出:2 6,我的理解是第40行的操作让pb指向对象a的内存地址空间,且pb+1就相当于整个下移int与double的内存空间。
最新文章
- 基于OWin的Web服务器Katana发布版本3
- 理解 Nova 架构 - 每天5分钟玩转 OpenStack(23)
- python之萌新入门的第一天
- node_modules\typescript\lib 未指向有效的 tsserver 安装 将禁用TypeScript 语言功能
- Cell右滑的动作状态
- 2015年10月份经常使用的linux命令。
- Sublime Text 2 中文 GBK 规范的配置 暨 解决中文乱码问题 简述
- POJ 1144 Network(Tarjan)
- .net程序员转战android第一篇---环境部署
- Hibernate的一些相关信息
- 浅析Struts2中的OGNL和ValueStack
- 图书馆管理系统(C语言)
- IE8下动态生成option无法设置文本内容
- pandas遍历行数据
- Asp.net 之 window 操作命令
- spark partition 理解 / coalesce 与 repartition的区别
- POJ 2431 (优先队列)
- Python(八)之函数
- WP8.1学习系列(第二十一章)——本地应用数据
- c++多态多实例
热门文章
- June 07th 2017 Week 23rd Wednesday
- ubuntu 可以加速播放的播放器SMPlayer 16.4安装
- IOS UIDevice距离传感器(打开 关闭)
- asp.net反射的运用
- 【洛谷P2184】贪婪大陆
- C# 动态改变webservice的访问地址
- 面向对象编程——class继承
- Question 20171115 String&;&;StringBuffer&;&;StringBuilder的区别与联系?
- 一个logstash引发的连环案,关于logstash提示:Reached open files limit: 4095, set by the &#39;max_open_files&#39; option or default, files yet to open: 375248
- dropload上拉加载更多