一、纯虚函数的格式
virtual 返回值 函数名(参数列表)= 0 ;
1、纯虚函数可以不去实现,一般人也没必要去实现。
2、父类中如果有纯虚函数,那么继承该父类的子类必须对其进行覆盖,否则无法创建对象。
3、有纯虚函数的类不能创建对象。
4、纯虚函数就是为了强制子类去覆盖,为了强制子类实现某些功能。
5、有纯虚函数的类都称为抽象类。
6、析构函数可以设置为纯虚函数,但是必须在类外定义
二、纯抽象类
所有的成员函数都是纯虚函数的类,称为纯抽象类,这种类一般用于设置功能接口,所以也称为接口类,不实现功能。
三、工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使用对象的过程分离
工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。
通过使用工厂模式,可以将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。
#include <iostream>
using namespace std;
enum Cars
{
cBenz,cAudi
};
class Car
{
public:
virtual void Make(void) = 0;
};
class Benz:public Car
{
public:
void Make(void)
{
cout<<"Benz"<<endl;
}
};
class Audi:public Car
{
public:
void Make(void)
{
cout<<"Audi"<<endl;
}
};
Car* create_car(Cars car)
{
switch(car)
{
case cBenz:return new Benz;
case cAudi:return new Audi;
}
}
int main(int argc,const char* argv[])
{
Car* car = create_car(cBenz);
car->Make();
return 0;
}