代码分析基类和派生类的地址和布局的问题

来源:互联网 发布:mindnode有windows版么 编辑:程序博客网 时间:2024/06/11 10:24


#include <iostream>
#include<memory.h>
#include<assert.h>
using namespace std;
class A
{
int m_nA;
};


class B
{
int m_nB;
};
class C:public A,public B
{
int m_nC;
};


int main(int argc,char*argv[])
{
C*pC = new C;
B*pB = dynamic_cast<B*>(pC);
A*pA= dynamic_cast<A*>(pC);

if(pC==pB)//pC和pB数据类型需要进行隐式的数据转换(过程见图分析),请看图示1
//相当于pC = (C*)pB, 实际上pC指向的对象(C*)隐式转换pB后pB指向的对象(pC指向的对象)的部分
{
cout << "equal" << endl;
}
else
{
cout << "not equal" << endl;
}


if (int(pC) ==int(pB))//指针pC和pB的值不同,转换为int值不同
    //假如是int pC=int (C*)pB 就是相等的
{
cout << "equal" << endl;
}
else
{
cout << "not equal" << endl;
}
}

//pA的情况和pB一致


                                                                                                                                                  图示1

代码运行结果:



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 没有收到提货码怎么办 增值税发票超过180天怎么办 花呗借钱还不上怎么办 实体店里没人气怎么办 EMS快件无人签收怎么办 邮政快递丢失了怎么办 快递手机丢了怎么办 拍照签收没收到怎么办 拼多多开店货源怎么办 被购买鉴定投诉怎么办 淘宝上买东西错想用花呗怎么办 淘宝想用花呗买东西差一点怎么办 买了假货怎么办还用吗 免税店买完东西怎么办 淘宝恶意拍单怎么办 二手西服不想要怎么办 苹果8p费电快怎么办 赌博被骗没证据怎么办 异地车子办保险怎么办 淘宝买到旧货怎么办 苹果官网买手机发票怎么办 车子异地换牌照怎么办 汽车异地上保险怎么办 后悔买保险了怎么办 平安run不计步怎么办 天梭力洛克有划痕怎么办 天梭手按钮坏了怎么办 天梭机械表总慢怎么办 买的天梭表没电了怎么办 天猫遇见假货怎么办 苹果六s内存不足怎么办 发票丢了报销怎么办 荣耀v9玩游戏卡怎么办 无极限不退货怎么办 高中想买手机怎么办 发票搞丢了怎么办 买车发票丢失怎么办 钻戒发票丢了怎么办 电子发票税号写错了怎么办 手机分期逾期了怎么办 顾客要写三包怎么办