c++工厂函数
时间: 2023-08-13 11:16:13 浏览: 142
c++工厂模式
C++工厂函数指的是一种设计模式,它能够根据参数的不同,返回不同的对象实例。在C++中,可以使用静态方法实现工厂函数。具体实现步骤如下:
1. 定义一个抽象基类,包含一个纯虚函数,用于创建对象实例。
2. 定义具体的子类,实现抽象基类中的纯虚函数,用于创建具体的对象实例。
3. 定义一个工厂类,包含一个静态方法,根据参数的不同,返回不同的子类对象实例。
下面是一个简单的示例代码:
```cpp
// 抽象基类
class Product {
public:
virtual void use() = 0;
};
// 具体子类
class ProductA : public Product {
public:
void use() override {
cout << "Product A used." << endl;
}
};
class ProductB : public Product {
public:
void use() override {
cout << "Product B used." << endl;
}
};
// 工厂类
class Factory {
public:
static Product* createProduct(int type) {
if (type == 1)
return new ProductA();
else if (type == 2)
return new ProductB();
else
return nullptr;
}
};
// 调用代码
Product* product = Factory::createProduct(1);
if (product)
product->use();
```
在上面的代码中,抽象基类是`Product`,具体子类是`ProductA`和`ProductB`,工厂类是`Factory`。工厂类中的`createProduct`静态方法根据参数的不同,返回不同的子类对象实例。调用时,只需要使用工厂类的静态方法创建对象即可。
阅读全文