标签:技术 ima color return 同名 面向对象编程 概念 面向对象 重定义
2017-06-27 19:17:52
C++面向对象编程的一个重要的特性就是多态性,而多态性的实现需要依赖虚函数的帮助。
一、多态的作用:
二、虚函数的声明:
class Base
{
virtual 返回值类型 函数名(形参表){}
}
A* p=&b
A& p=b
三、多态性的实现
可以使用基类的对象指针来先后指向同一类族中的不同类对象,以便使用相同的调用方法去调用不同派生类的同名虚函数。
class A { int a; public: A(int x) { a=x; } virtual void get(){cout<<"A::"<<a<<endl;} }; class B:public A { int b; public: B(int x,int y):A(x) { b=y; } void get(){cout<<"B::"<<b<<endl;} }; class C:public B { int c; public: C(int x,int y,int z):B(x,y) { c=z; } void get(){cout<<"C::"<<c<<endl;} }; int main() { C c1(1,2,3); A* p1=&c1; B* p2=&c1; p1->get(); p2->get(); return 0; }
四、纯虚函数
定义一个基类的时候如果还无法给出虚函数的具体实现方式,可以将之声明为纯虚函数,纯虚函数的实现完全依赖于各个派生类。
纯虚函数的声明:
virtual 返回值类型 函数名(形参表)=0;
五、抽象类
抽象类是指无法定义对象只能作为基类的一种特殊的类,但是可以定义对象指针,目的是为了实现多态性。
抽象类有两种:
标签:技术 ima color return 同名 面向对象编程 概念 面向对象 重定义
原文地址:http://www.cnblogs.com/TIMHY/p/7086759.html