最近在工作中,出现了严重的代码错误,对象的基类和子类的继承,代码大致如下:

class A
{
};class B : public A
{
}void main()
{A* a;(用于子类对象来进行赋值)= new 子类;//错误代码如下B* b = (B*) a;b.方法;
}

//在这个过程中,主要有两点错误:1,在a进行转换到B并没有对a进行类型判断,a不为空,则b肯定不为空  2.对b调用自己方法。如果b是非想虚函数,不会崩溃,但是调用自己的虚构函数,则崩溃。自己要多看看c++对象模型和c++ primer书,对对象模型能够了解清楚

转载于:https://www.cnblogs.com/sdnyzhl/p/5686352.html

c++父类和子类转化致命的代码错误相关推荐

  1. C++共享指针的父类和子类转化

    C++11之后,使用指针是要注意两点: 1.能用共享指针就用共享指针,不用普通指针: 2.在工程一开始就用共享指针,不要定义一个普通指针后再转化: 以下代码转自OSChina,感谢原创者@宁宁爸,记在 ...

  2. Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序...

    实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...

  3. java中父类与子类的关系以及使用

    java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子, ...

  4. java 父类转子类_Java多态,对象转型,和简单工厂模式。希望对您有帮助!

    各位读者老爷们大家好鸭~图图又来了,今天我们要说一下"多态". 怎么理解这两个字呢?可以理解为同一个引用对象的不同表现形态,即将父类的引用指向子类的对象.这是比较官方的书面解释,大 ...

  5. java多态性详解——父类引用子类对象

    Java的多态性 面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作 ...

  6. java父类引用子类属性_Java多态性详解——父类引用子类对象

    面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...

  7. java 父类获取子类对象_Java多态性详解 (父类引用子类对象)

    面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...

  8. python父类和子类_python子类父类

    1.类的定义 代码如下: 复制代码复制代码 !/usr/bin/env python coding:utf8 class Hotel(object): """docstr ...

  9. 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )

    文章目录 I . 子类调用父类总结 II . 子类调用父类方法 ( super ) III . 子类内部类调用父类方法 ( super@ ) IV . 子类选择调用不同的 父类 / 接口方法 ( su ...

最新文章

  1. java开发用amd处理器_HBase1.x实战:协处理器Java开发实例--ObserverCoprocessor
  2. 超强、超详细Redis数据库入门教程
  3. docker mysql日志写入本地_Docker Compose搭建MySQL主从复制集群
  4. CMake入门(二)
  5. 开源协议神图介绍 MIT 与 Apache 等
  6. 教你如何防止网站被挂马!
  7. python 读取csv带表头_python读csv文件时指定行为表头或无表头的方法
  8. FlexSIM.ED v4.0 1CD(生产排程,虚拟管理,能力平衡软件)
  9. 《HTTP权威指南》读书笔记---说明
  10. 有什么做电音的软件?3款好用App让你爱上唱歌
  11. 金融财务数据分析报告PPT模板
  12. java编程语言视频教程,详细说明
  13. JS_js和jq获取屏幕高度、宽度的方法
  14. Scratch之自动走迷宫
  15. android vplayer 开源,万能视频播放器VPlayer评测:国内唯一真正硬解码
  16. 基于STM32cubemx的stm32f107vct6代码生成教程,实验一led闪烁
  17. 1 Nginx性能优化方法
  18. 各种快捷的格式转换:图片转.ico,去图片白底
  19. Java中如何给map数组制空,java.util.HashMap可以存储null键和null值。( )
  20. php 时间转时辰,女子十二时辰,最佳养颜作息时间表!(女人必看!)

热门文章

  1. 复制含有随机指针节点的链表~哈希表的使用~(⌒▽⌒)
  2. 分级调节是调节机制吗_机制砂大热,5种制砂工艺及特点介绍,选对生产工艺,保证高效生产...
  3. anaconda下安装python,Windows下Anaconda的安装和简单使用方法
  4. Java反射 field
  5. matlab时域转换成频域_从时域到频域,你只需要旋转一下!
  6. java客户端连接请求发不出去_java – Spring:客户端发送的请求在语法上不正确()...
  7. numpy python 兼容_Python 2和3之间的numpy数组的不兼容性
  8. java用while循环语句输出1-100内的奇数和
  9. 删除linux目录下一半的文件,Linux面试题(一):删除一个目录下的所有文件,但保留一个指定文件...
  10. mysql 数据类型怎么用,myMySQL数据库怎么更改表中某字段的数据类型? MySQL数据库使用教程...