当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《vc++课件》虚函数和抽象类

资源类别:文库,文档格式:PPT,文档页数:17,文件大小:83KB,团购合买
一、 虚函数的使用 二、 抽象类的概念和定义 三、 纯虚函数的使用
点击下载完整版文档(PPT)

虚函数和抽家类

虚函数和抽象类

士主要内容 虚函数的使用 ■抽象类的概念和定义 n纯虚函数的使用

◼ 虚函数的使用 ◼ 抽象类的概念和定义 ◼ 纯虚函数的使用 主要内容

虚函数的使用 虚函数是动态联编的基础。 是非静态的成员函数。 在类的定义中,在函数原型之前写 virtual virtual只用来说明类定义中的原型,不能用在函数实 现时。 具有继承性,基类中定义了虚函数,派生类中无论是 否说明,同原型函数都自动为虚函数 本质:不是重载定义而是覆盖定义。 调用方式:通过基类指针或引用,执行时会 根据指针指向的对象的类,决定调用哪个函数

◼ 虚函数是动态联编的基础。 ◼ 是非静态的成员函数。 ◼ 在类的定义中,在函数原型之前写virtual。 ◼ virtual 只用来说明类定义中的原型,不能用在函数实 现时。 ◼ 具有继承性,基类中定义了虚函数,派生类中无论是 否说明,同原型函数都自动为虚函数。 ◼ 本质:不是重载定义而是覆盖定义。 ◼ 调用方式:通过基类指针或引用,执行时会 根据指针指向的对象的类,决定调用哪个函数。 虚函数的使用

士写出运行结果 #include iostream. h> class bo∥类声明 public:∥外部接口 virtual void display)∥虚成员函数 scout<<B0: display"<<endl;

写出运行结果 #include class B0 //基类声明 { public: //外部接口 virtual void display() //虚成员函数 {cout<<"B0::display()"<<endl;} };

class b1: public bo∥公有派生 i public void display i cout<<Bl: display( "endl class dl: public bl∥公有派生 i public void display i cout<< DI: display"<<endl

class B1: public B0 //公有派生 { public: void display() { cout<<"B1::display()"<<endl; } }; class D1: public B1 //公有派生 { public: void display() { cout<<"D1::display()"<<endl; } };

void fun(BO*ptr)/普通函数 i ptr->display: j void maino∥主函数 B0Ob0,*p;∥声明基类对象和指针 Blbl;∥声明派生类对象 D1d1;/声明派生类对象 p=&bo fun(p),∥调用基类BO函数成员 p=&bl fun(p);∥调用派生类B1函数成员 p=&dI fun(p);∥调用派生类D1函数成员

void fun(B0 *ptr) //普通函数 { ptr->display(); } void main() //主函数 { B0 b0, *p; //声明基类对象和指针 B1 b1; //声明派生类对象 D1 d1; //声明派生类对象 p=&b0; fun(p); //调用基类B0函数成员 p=&b1; fun(p); //调用派生类B1函数成员 p=&d1; fun(p); //调用派生类D1函数成员 }

程序的运行结果为: BO: display ■B1: display( D1: display o

◼ 程序的运行结果为: ◼ B0::display() ◼ B1::display() ◼ D1::display()

虚函数与构造函数 虚函数用于实现不同对象有不同的行为, 是实现运行时多态的基础,是针对对象 而言的 而构造函数是在对象尚未完全建立起来 的时候执行的。因此将构造函数声明为 虚函数是没有意义的

◼ 虚函数用于实现不同对象有不同的行为, 是实现运行时多态的基础,是针对对象 而言的。 ◼ 而构造函数是在对象尚未完全建立起来 的时候执行的。因此将构造函数声明为 虚函数是没有意义的。 虚函数与构造函数

虚函数与析构函数 ■例1示例虚函数与析构函数 ■析构函数可以是虚函数,也往往被定义 为虚函数。 般来说,若某类中有虚函数,则其析 构函数也应当定义为虚函数。 ■如果一个类的析构函数是虚函数,那么 由它派生的所有子类的析构函数都是虚 函数。保证对象的销毁工作彻底完成

◼例1 示例虚函数与析构函数 ◼析构函数可以是虚函数,也往往被定义 为虚函数。 ◼一般来说,若某类中有虚函数,则其析 构函数也应当定义为虚函数。 ◼如果一个类的析构函数是虚函数,那么 由它派生的所有子类的析构函数都是虚 函数。保证对象的销毁工作彻底完成。 虚函数与析构函数

纯虚函数与抽家类 Shape →抽象类 Int x,y drawL; //KlE 纯虚函数 area( //AE setvalued Square Circle drawL drawL a0: area areao

纯虚函数与抽象类 抽象类 纯虚函数 Square draw(); area(); Circle draw(); area(); Shape draw();//虚 area();//虚 setvalue(); int x,y;

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共17页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有