C++入门进阶之6: 多态性
2012-09-26 00:06
218 查看
1. 多态是指同样的消息被不同类型的对象接收时导致不同的行为,消息是指对类的成员函数的调用。
2. 多态的类型: 重载多态,强制多态,包含多态和参数多态。
3.多态的实现: 分为编译时的多态和运行时的多态
4. 运算符重载:对已有的运算符赋予多重含义,使得同一个运算符作用于不同类型数据时,导致不同的行为。
5. 运算符重载的规则: a. 除了少数几个外,其他的C++中已有的运算符都可以重载
b. 重载之后的运算符和优先级保持不变
c. 运算符的重载是针对新类型的数据实际需要,对原有运算符进行适当的改造。
6. 运算符重载两种形式:重载为类的成员函数和重载为类的友元函数。
函数类型 operator 运算符(形参表)
{
}
7. 虚函数: 虚函数是动态绑定的基础。必须是非静态成员函数,经过派生之后,在类族中就可以实现运行过程中的多态。
8. 虚函数成员:只能出现在类声明中的函数原型声明中。
9.虚析构函数: 在C++中,不能声明虚构造函数,但是可以声明虚析构函数。 如果一个类的析构函数是虚函数,那么由它派生而来的所有子类的析构函数也是虚函数。
析构函数设置为虚函数后,在使用指针引用时,可以动态绑定,实现运行时的多态,保证基类类型的指针就能够调用适当的析构函数针对不同对象进行清理工作。
10. 纯虚函数: 纯虚函数是一个在基类中声明的虚函数,它在该基类中没有定义具体的操作内容,要求各派生类根据实际需要定义自己的版本。
格式为: virtual 函数类型 函数名(参数表)= 0;
声明为纯虚函数后,基类中就不再给出函数的实现部分。
11. 抽象类 : 带有纯虚函数的类就是抽象类。 抽象类不能被实例化。
2. 多态的类型: 重载多态,强制多态,包含多态和参数多态。
3.多态的实现: 分为编译时的多态和运行时的多态
4. 运算符重载:对已有的运算符赋予多重含义,使得同一个运算符作用于不同类型数据时,导致不同的行为。
5. 运算符重载的规则: a. 除了少数几个外,其他的C++中已有的运算符都可以重载
b. 重载之后的运算符和优先级保持不变
c. 运算符的重载是针对新类型的数据实际需要,对原有运算符进行适当的改造。
6. 运算符重载两种形式:重载为类的成员函数和重载为类的友元函数。
函数类型 operator 运算符(形参表)
{
}
7. 虚函数: 虚函数是动态绑定的基础。必须是非静态成员函数,经过派生之后,在类族中就可以实现运行过程中的多态。
8. 虚函数成员:只能出现在类声明中的函数原型声明中。
9.虚析构函数: 在C++中,不能声明虚构造函数,但是可以声明虚析构函数。 如果一个类的析构函数是虚函数,那么由它派生而来的所有子类的析构函数也是虚函数。
析构函数设置为虚函数后,在使用指针引用时,可以动态绑定,实现运行时的多态,保证基类类型的指针就能够调用适当的析构函数针对不同对象进行清理工作。
10. 纯虚函数: 纯虚函数是一个在基类中声明的虚函数,它在该基类中没有定义具体的操作内容,要求各派生类根据实际需要定义自己的版本。
格式为: virtual 函数类型 函数名(参数表)= 0;
声明为纯虚函数后,基类中就不再给出函数的实现部分。
11. 抽象类 : 带有纯虚函数的类就是抽象类。 抽象类不能被实例化。
相关文章推荐
- C++入门进阶之6: 多态性
- lua学习笔记之二(C/C++程序员的Lua快速入门[进阶话题])
- 2.[个人]C++线程入门到进阶(2)----线程同步之信号量(semaphore)
- 17.[个人]C++线程入门到进阶(17)----关键段,事件,互斥量,信号量的“遗留”问题
- C/C++从入门到进阶必修书籍
- C++入门进阶之2: 函数
- 3.[个人]C++线程入门到进阶(3)----线程同步之关键段CS 与临界区
- 18.[个人]C++线程入门到进阶(18)----线程函数:SuspendThread
- C++入门进阶之4: C++程序结构
- 三天半看完 C++(前置准备:Java、Python、JavaScript入门、Kotlin、PHP、Laravel、Linux、Nginx、ES5进阶、Gradle、Groovy)
- 4.[个人]C++线程入门到进阶(4)----线程同步之事件Event
- 19.[个人]C++线程入门到进阶(19)----线程函数:ResumeThread
- 5.[个人]C++线程入门到进阶(5)----线程同步之互斥量Mutex
- C++入门进阶之3: 类和对象
- 6.[个人]C++线程入门到进阶(6)----原子操作 Interlocked系列函数
- 20.[个人]C++线程入门到进阶(20)----线程函数:OpenThread
- C++入门进阶之一: 基础知识介绍
- 7.[个人]C++线程入门到进阶(7)----多线程中的隐蔽问题揭秘
- C++入门进阶之2: 函数
- c++快速简易入门教程_007虚函数与多态性、纯虚函数