#include<iostream>
using namespace std;
#define METHOD_PROLOGUE(theClass,localClass) \
theClass* pThis = ( (theClass*)((char*)(this) - \
offsetof(theClass,m_x##localClass)) );
class Outer
{
int o_a;
int o_b;
public:
Outer(){o_a=0;o_b=0;cout<<"Outer()"<<endl;}
virtual void print();
class InnerA
{
private:
int i_a;
int i_b;
public:
InnerA(){i_a=1;i_b=1;cout<<"InnerA()"<<endl;}
virtual void print();
}m_xInnerA;
class InnerB
{
private:
int i_a;
int i_b;
public:
InnerB(){i_a=2;i_b=2;cout<<"InnerB()"<<endl;}
virtual void print();
}m_xInnerB;
friend class InnerA;
friend class InnerB;
};
void Outer::print()
{
//cout<<"o_a="<<o_a<<",o_b="<<o_b<<endl;
cout<<"Outer::vptr=="<<this<<endl;
cout<<"the address of Outer:: o_a="<<&o_a<<",add of o_b="<<&o_b<<endl;
}
void Outer::InnerA::print()
{
METHOD_PROLOGUE(Outer,InnerA)
cout<<"InnerA::vptr=="<<(Outer*)(char*)(this)<<endl;
cout<<"(Outer::vptr)pThis="<<pThis<<endl;
cout<<"the address of Outer::InnerA::i_a="<<&i_a<<",add of i_b="<<&i_b<<endl;
//cout<<"o_a="<<pThis->o_a<<",o_b="<<pThis->o_b<<endl;
//cout<<"i_a="<<i_a<<",i_b="<<i_b<<endl;
}
void Outer::InnerB::print()
{
METHOD_PROLOGUE(Outer,InnerB)
cout<<"InnerB::vptr="<<(Outer*)(char*)(this)<<endl;
cout<<"(Outer::vptr)pThis="<<pThis<<endl;
cout<<"the address of Outer::InnerA::i_a="<<&i_a<<",add of i_b="<<&i_b<<endl;
//cout<<"i_a="<<i_a<<",i_b="<<i_b<<endl;
}
int main()
{
Outer mOb;
cout<<"the address of mOb="<<&mOb<<endl;
mOb.print();
cout<<"the address of mOb.m_xInnerA="<<&(mOb.m_xInnerA)<<endl;
cout<<"offsetof(Outer,m_xInnerA)="<<offsetof(Outer,m_xInnerA)<<endl;
mOb.m_xInnerA.print();
cout<<"the address of mOb.m_xInnerB="<<&(mOb.m_xInnerB)<<endl;
cout<<"offsetof(Outer,m_xInnerB)="<<offsetof(Outer,m_xInnerB)<<endl;
mOb.m_xInnerB.print();
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
嵌套类内存布局分析(vc)
共6个文件
dsw:1个
opt:1个
plg:1个
需积分: 10 24 下载量 200 浏览量
2009-12-17
14:53:48
上传
评论
收藏 6KB RAR 举报
温馨提示
嵌套类内存布局分析,学习了一下COM,觉得对嵌套类的理解很重要,自己做了一个例子把各成员的地址都输出了,下载后可用VC打开工程文件即可
资源推荐
资源详情
资源评论
收起资源包目录
vc6.0).rar (6个子文件)
main.cpp 2KB
main.plg 1KB
main.dsp 3KB
main.dsw 533B
main.ncb 33KB
main.opt 48KB
共 6 条
- 1
资源评论
fredhurui
- 粉丝: 76
- 资源: 68
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功