纯虚函数
纯虚函数说明形式:
virtual 类型 函数名(参数表) = 0;
一个函数含有纯虚函数的基类称为抽象类。
纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软件的模块功能划分)
<span style="font-size:14px;">#include <iostream>
using namespace std;
class Figure
{
public:
virtual void getArea() = 0;
};
class Circle : public Figure
{
public:
Circle(int a, int b)
{
this->a = a;
this->b = b;
}
virtual void getArea()
{
cout << "圆的面积:" << 3.14*a*a << endl;
}
private:
int a;
int b;
};
class Tri : public Figure
{
public:
Tri(int a, int b)
{
this->a = a;
this->b = b;
}
virtual void getArea()
{
cout << "三角形的面积:" << 0.5*a*b << endl;
}
private:
int a;
int b;
};
class Square : public Figure
{
public:
Square(int a, int b)
{
this->a = a;
this->b = b;
}
virtual void getArea()
{
cout << "四边形的面积:" << a*b << endl;
}
private:
int a;
int b;
};
</span><span style="font-size:18px;">
</span><span style="font-size:14px;">void objplay(Figure* base)
{
base->getArea();//会发生多态
}
int main()
{
Circle c1(10,20);
Tri t1(20,30);
Square s1(50,60);
objplay(&c1);
objplay(&t1);
objplay(&s1);
system("pause");
return 0;
}</span>
实际工程经验表明
多重继承接口(抽象类) 不会带来二义性和复杂性等问题。
多重继承可以通过精心设计用单继承和接口来代替。
接口类只是一个功能说明,而不是功能实现。
子类需要根据功能说明定义功能实现。
虚函数和多态性使成员函数根据调用对象的类型产生不同的动作。
多态性特别适合于实现分层结构的软件系统,便于对问题的抽象,定义共性
面向抽象类编程(面向接口编程)是项目开发中重要技能之一。