纯虚函数和抽象类
1、纯虚函数是一种特殊的虚函数,
2、在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。
3、这就是纯虚函数的作用。
4、纯虚函数是一个在基类中说明的虚函数,在基类中没有定义, 要求任何派生类都定义自己的版本
5、纯虚函数为各派生类提供一个公共界面
6、纯虚函数结构:
virtual 类型 函数名(参数表)=0 ;
一个具有纯虚函数的基类称为抽象类。
7、举例
class point { /*……*/ } ;
class shape ; // 抽象类
{ point center ;
……
public :
point where ( ) { return center ; }
void move ( point p ) {center = p; draw ( ) ; }
virtual void rotate ( int ) = 0 ; //纯虚函数
virtual void draw ( ) = 0 ; // 纯虚函数
} ;
#include<iostream>
using namespace std ;
class Number
{ public : Number (int i) { val = i ; }
virtual void Show() = 0 ;
protected: int val ;
};
class Hex_type : public Number
{ public: Hex_type(int i) : Number(i) { }
void Show() { cout << "Hexadecimal:"<< hex << val << endl ; }
};
class Dec_type : public Number
{ public: Dec_type(int i) : Number(i) { }
void Show() { cout << "Decimal: "<< dec << val << endl ; }
};
class Oct_type : public Number
{ public: Oct_type(int i) : Number(i) { }
void Show() { cout << "Octal: " <<oct << val << endl ; }
};