如何获取重载了operator &的类对象的实际地址?
2010-10-10 17:14
246 查看
我们可以通过将reinterpret_cast将类对象强制转换成内置类型的引用,然后对其进行取地址操作如下
代码
代码
#include <iostream> using namespace std; struct A { int * p; int *operator&(){return p;} }; template<class T> T * addressof(T & val) { return reinterpret_cast<T*>(&reinterpret_cast<int&>(val)); } template<class T> T const * addressof(T const & val) { return reinterpret_cast<T const*>(&reinterpret_cast<int const&>(val)); } int main() { A a; a.p = NULL; A * pA = NULL; pA =addressof(a); cout<<pA<<endl; A const ca; A const*pca; pca = addressof(ca); return 0; }
相关文章推荐
- boost addressof--正确获取重载了&的类的对象的地址
- 如何获取hibernate代理类代理的实际对象实例?
- 如何利用迅雷下载百度云获取实际下载地址
- Jquery如何判断 $("#id")获取的对象是否存在
- 如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论
- Java中如何获取对象(引用)地址?
- operator->重载问题总结 让一个对象表现的像一个指针
- $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址注意事项
- 如何判断对象包含List<T>中的类型
- iframe的页面内容如何获取父页面的地址
- Jack's Notes11——打地鼠(forin遍历、type获取节点对象的类型)
- 如何通过VB获取网卡地址
- Android 如何获取当前Activity实例对象?
- web项目如何获取容器中的bean对象?
- C# 如何获取某个类型或类型实例对象的大小
- 如何通过经纬度获取地址信息?
- js中如何复制一个对象,如何获取所有属性和属性对应的值
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- js获取对象、数组的实际长度,元素实际个数的实现代码
- QDebug &operator<<出错(根据QString来找,是不得要领的,而是应该根据QString所在的对象来思考)