分类: C/C++
2011-08-06 22:34:22
/*
* 纯虚函数
* 包含一个或多个纯虚函数的类为抽象类。
* 抽象类不能定义对象
* 抽象类只能作为基类被子类继承,其纯虚函数的实现由派生类给出
* 只有当派生类中所有纯虚函数都实现时,此时的派生类才是具体类
* 抽象类不能用作参数类型,函数返回类型或强制转换
* 抽象类可以声明指针和引用
* Lzy 2011-七夕
*/
#include
using namespace std;
class Shapes
{
public:
virtual void draw(){cout<<"Draw Base"<
virtual double area()=0; //定义纯虚函数
};
class Circle:public Shapes
{
private:
double radius;
public:
Circle(double r):radius(r){}
void draw(){cout<<"Draw Circle"<
double area(){return 3.14*radius*radius;}
};
int main(void)
{
Circle c(3);
c.draw();
cout<<"面积:"<
Shapes *ptr;
ptr=&c;
ptr->draw();
cout<<"面积:"<
return 0;
}