C++ How To Program整理(9)
来源:互联网 发布:淘宝u站中心官网 编辑:程序博客网 时间:2024/06/05 02:40
@polymorphism,使能够进行通用化编程,在处理同一个类的(继承)层次结构下的对象时,像是基类的对象一样。
@同一个消息发送给不同的对象,会有不同的处理结果,此所谓多态性。
@被调用的功能取决于用来调用函数的句柄,而不是句柄所指向的类型。
例如基类Commission和派生类Employee都有print函数
Commission *commission;
Employee employee;
commission=&employee;
commission->print();
则是调用的基类的print。
@利用基类指针,编译器只允许调用基类的成员函数。
@便宜器也允许通过指向派生类对象的基类指针访问派生类对象的成员,但是前提是要对基类指针强制转换成派生类指针,这就是向下强制类型转换。
@如果使用virtual函数,调用哪个版本的virtual函数就由句柄所指向的对象的类型来决定,而非句柄的类型。
@如果一个函数声明为virtual,那么在整个继承层次中即使派生类在重写时没有显示的将它声明为virtual的,它都是virtual的,当然,为了易读性
和可理解性,最好在每一级都显示的声明为virtual。
@当派生类没有重写基类的virtual函数时,派生类就会简单的继承基类的virtual函数的实现。
@使用virtual函数动态绑定只能通过指针来完成。
@抽象类不能用来实例化对象,构造抽象类的目的是为其他类提供合适的基类。
@通过声明类的一个或多个virtual函数为纯virtual,可以是一个类称为抽象类,纯virtual函数是在声明时初始化为零的函数
例如:virtual void func() const =0;
“=0”称为纯指示符,纯virtual函数不提供函数的具体实现,每个派生类必须重写所有基类的纯virtual函数。
@virtual函数和纯virtual函数的区别是:virtual函数提供了函数的实现,并且派生类可以重写也可以不重写,都是具体类(可以定义对象),纯
virtual函数不提供实现,派生类如果不重写这些函数,那么派生类还是抽象类。
@尽管不能实例化抽象基类,但是可以用它声明指针和引用。
@如果一个类含有virtual函数,该类需要踢狗一个irtual析构函数,这可以保证当一个派生类的对象通过基类指针删除时,派生类的析构函数会被调
用。
- C++ How To Program整理(9)
- C HOW TO PROGRAM!中
- C++ How To Program整理(1)
- C++ How To Program整理(2)
- C++ How To Program整理(3)
- C++ How To Program整理(4)
- C++ How To Program整理(5)
- C++ How To Program整理(6)
- C++ How To Program整理(7)
- C++ How To Program整理(8)
- C++ How To Program整理(10)
- C++ How To Program整理(11)
- C++ How To Program整理(12)
- C How to program,Fifth Edition
- [C How To Program] 习题 3.36
- [C How To Program] 习题3.38
- [C How To Program] 习题3.46
- [C How To Program] 习题5.22
- MFC得到屏幕大小
- BMP头文件格式以及C语言读取头文件
- In App Purchase 个人使用总结
- 第一个真正项目
- 2012.7.12总结
- C++ How To Program整理(9)
- 带Checkbox的EditorGridPanel
- 用批处理获取当前目录下所有文件的路径
- 关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究
- hibernate 执行sql ,select 返回string long
- git 使用详解(7)-- 分支HEAD
- mfc如何让对话框全屏
- oracle连接(内连接,左连接,右连接,全连接,交叉连接)
- c# 创建xml文档