来一段c++简单工厂模式代码
时间: 2023-10-16 20:33:13 浏览: 165
好的,以下是一个简单的C++简单工厂模式的示例代码:
```cpp
// 抽象产品类
class Product {
public:
virtual void operation() = 0;
};
// 具体产品类A
class ProductA : public Product {
public:
void operation() override {
std::cout << "Product A operation" << std::endl;
}
};
// 具体产品类B
class ProductB : public Product {
public:
void operation() override {
std::cout << "Product B operation" << std::endl;
}
};
// 工厂类
class Factory {
public:
static Product* createProduct(char type) {
switch(type) {
case 'A':
return new ProductA();
case 'B':
return new ProductB();
default:
return nullptr;
}
}
};
// 调用示例
int main() {
Product* productA = Factory::createProduct('A');
productA->operation();
Product* productB = Factory::createProduct('B');
productB->operation();
delete productA;
delete productB;
return 0;
}
```
以上代码中,抽象产品类 `Product` 定义了产品的基本行为,具体产品类 `ProductA` 和 `ProductB` 继承自 `Product` 并实现了产品的具体行为。工厂类 `Factory` 中的 `createProduct` 方法根据传入的参数类型创建对应的具体产品对象,并返回指向抽象产品类的指针。在调用示例中,通过工厂类创建了 `ProductA` 和 `ProductB` 两种产品的对象,并调用了它们的操作方法。最后要注意及时释放创建的对象。
阅读全文