C++指针转换例子

1.今天用子类指向一个父类强制转化为子类指针的对象 发现居然输出的是子类的函数  和我想象的不一样

    A*a =new A();B*b = new B();  b = (B*)a;‘

下面是我个人结合书本理解

 

1.子类指针转换成父类

父类指针会指向子类中原本父类的那块内存  只有一点不一样!父类的虚函数指针所指的虚函数列表会被子类覆盖(原本子类产生就会覆盖父类虚函数表的指针) 所以你打印虚函数 发现是子类的虚函数。

 

2.父类转换成子类

子类指针 会指向父类的内存并会多一块假的内存 内存是未知的 虚函数仍指向父类的虚函数 其他函数 其他子类成员变量一切都是未知 会发生危险行为。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值