多态,即多种形态。对于具有继承关系的一类对象,子类表现出了父类的某些特性,但是表现的不一样,这就是多态的现实体现。例如动物可以发声,但是狗是旺旺,狗是动物的一种,但是表现了不同的叫的特点,这就是多态。

若class B:public A

A* a=new B();对于这句话该怎么理解?

1.A* a规定了要分配的存储空间类型是类A的类型,该内存空间只能包含类A规定的属性和方法,A的继承类B以后添加的方法都没有包含进来。

2.new B()规定了被实例化的对象是B的实例对象,即是类B被分配了内存空间。

1和2两个规定求交集(红色文字求交集),表明B中只有继承自A的方法和属性才能被调用,B自己后来添加的新方法是不能被编译通过的,因为该内存空间没有空间分配给除类A以外的方法了。

因此c++规定:

1.如果方法需要被重写,那么最好加上virtual关键字,因为该关键字是实现多态的关键,不加也可以覆盖子类方法,但是缺少规范性;

2.不加virtual的方法,严格上讲最好不要被重写。

对于变量的理解:

type a;

type限定了该变量空间所存储变量需要遵守的规则,如对于int类型需要分配多大的空间;对于class类型,规定了为哪些方法和属性分配空间。

最新文章

  1. Java程序设计之最大公约数和最小公倍数
  2. C++使用继承时子对象的内存布局
  3. 42. Trapping Rain Water
  4. 使用EasyUI的插件前需要引入的文件
  5. javascript笔记——jQuery插件开发的几种方式
  6. cocos2d-x触屏事件(单点触屏)
  7. phpDesigner 7.2.5 注册码 更改 语法高亮 主题
  8. DWR3.0框架入门(3) —— ScriptSession的维护及优化
  9. jquery获取文件名称
  10. 获取子物体数量---Transform.childCount
  11. [译]Python作为一种编程语言有多强大?
  12. 最近最久未使用页面淘汰算法———LRU算法(java实现)
  13. How does the compilation and linking process work?
  14. 20172306 2018-2019-2 《Java程序设计与数据结构》第九周学习总结
  15. MyBatis 一级缓存和二级缓存及ehcache整合
  16. .net core 2.0 虚拟目录下载 Android Apk 等文件
  17. Oracle数据库基础教程
  18. Odoo8出现Internal Server Error的解决办法之一
  19. ssh出错 sign_and_send_pubkey: signing failed: agent refused operation
  20. 【Unity】3.6 导入图片资源

热门文章

  1. 一种关键字搜索---edu.cn
  2. java 对象占用内存查看 以及JVM级别 方法修改等
  3. saltstack之用户管理
  4. VS使用WEB DEPLOY发布
  5. Mac Python建立简单的本地服务器
  6. PHP-Manual的学习----【语言参考】----【类型】-----【对象】
  7. 【BZOJ4785】[Zjoi2017]树状数组 树套树(二维线段树)
  8. 自然常数e的神奇之美
  9. CAFFE学习笔记(一)Caffe_Example之训练mnist
  10. 记录-阿里云Oss文件上传