C++实现引用和被引用对象分离
2024-10-13 02:49:42
上一篇博客简单介绍了C++中引用的底层实现,接下来,通过简单的代码验证如何将引用和被引用对象分离。
代码如下;
#include <iostream>
#include<string>
#include <vector>
#include <algorithm>
using namespace std; class Test
{
public:
int val;
int y;
int &ref_val;
Test():val(0x01010101),y(0x01010101),ref_val(val)
{
}
}; int main()
{ Test obj;
cout << sizeof(obj)<<endl;//VS2008中,win7 32位中结果为8,说明引用也是有内存空间的
cout << &obj<<endl;
cout << &(obj.val)<<endl;
cout << &(obj.y)<<endl;
cout << &(obj.ref_val)<<endl; //接下来将val的引用分离,改为对y的引用
*(&(obj.y)+)= (int)&(obj.y);
//通过引用修改值,发现y的值变化,val不变
obj.ref_val = 0x02020202;
cout << hex<<obj.val <<endl<<obj.y<<endl;
return ;
}
运行结果如下
最新文章
- HAProxy的日志配置以及ACL规则实现负载均衡
- Jackson 通过自定义注解来控制json key的格式
- hashMap的输出是和加入元素的顺序一样的吗?
- linux-01Red Hat Enterprise Linux 7(RHEL7)配置静态IP地址
- artTemplate 介绍
- [POJ1330]Nearest Common Ancestors(LCA, 离线tarjan)
- cocos2dx Hello world 创建
- ZOJ 2967 Colorful Rainbows 【Stack】
- bestcoder44#1002
- uinty3d使用ugui封装一个分页控件
- Dive in python Chapter4 实例
- docker学习------记录centos7.5下docker安装更换国内源的处理过程
- C#3.0 Lamdba表达式与表达式树
- git bash + gitee
- python特色_字典,元组,列表
- 来一个使用sysbench测试cpu性能的简单脚本
- Map集合与转化
- Android AppCompat 需要 API 级别 11
- java修改AD域用户密码使用SSL连接方式
- DNS服务器配置实践