您的位置:首页 > 编程语言 > C语言/C++

c++ 虚函数 纯虚函数 抽象类

2012-12-12 13:27 267 查看
虚函数:

声明虚函数的方法是在基类的成员函数原型前加上关键字virtual。简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。

其格式如下:

只需改变基类

class 类名

{......

virtual 类型 函数名 (参数表):

.......

};

纯虚函数:

在基类中只声明虚函数而不给出具体的函数定义体,将它的具体定义放在各派生类中,称此虚函数为纯虚函数。

通过该基类的指针或引用就可以调用所有派生类的虚函数,基类只是用于继承,仅作为一个接口,具体功能在派生类中实现。

形式:

virtual 类型 函数名(参数表)=0;

抽象类:

带有纯虚函数的类成为抽象类:

class 类名

{

virtual 类型 函数名(参数表)=0;//纯虚函数

..........

};

注意:

不能声明抽象类的对象,但可以声明指向抽象类的指针变量和引用变量。

引入抽象类的目的,主要是为了能将相关类组织在一个类继承结构中,并通过抽象类来为这些相关类提供统一的操作接口。

举例说明:


声明一个动物类

#ifndef Animal_H
#define Animal_H

#include <iostream>
using namespace std;
class Animal
{
public:
virtual  void cry()=0;
virtual void action()=0;
//{cout<<"zooooo"<<endl;}

};
#endif


声明一个猫类继承与动物类

#include "animal.h"

class Cat:public Animal
{
public:
void cry(){cout<<"miaomiao"<<endl;}
void action(){cout<<"pashu"<<endl;}

};


声明一个Dog类继承与Aniaml类

#include "animal.h"

class Dog:public Animal
{
public:
void cry(){cout<<"wangwang"<<endl;}
void action(){cout<<"zuandong"<<endl;}
};


mian类

#include "animal.h"
#include "cat.h"
#include "dog.h"

void display(Animal &p);

void main()
{
//Animal a;
Cat c;
Dog d;
//c=new Cat();
//d=new Dog();

//display(a);
display(c);
display(d);
//c.cry();

}
void display(Animal &p)
{
p.cry();
p.action();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: