亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何用C++工廠模式創建對象

c++
小樊
84
2024-09-07 05:55:34
欄目: 編程語言

在C++中,工廠模式是一種設計模式,用于根據輸入參數的不同創建不同類型的對象。這樣可以將對象的創建過程與使用過程分離,提高代碼的可擴展性和可維護性。

下面是一個使用C++工廠模式創建對象的示例:

  1. 首先,定義一個基類(Product)和一些派生類(ConcreteProductA, ConcreteProductB):
#include<iostream>
#include<string>

// 基類
class Product {
public:
    virtual void use() = 0;
};

// 派生類A
class ConcreteProductA : public Product {
public:
    void use() override {
        std::cout << "Using ConcreteProductA"<< std::endl;
    }
};

// 派生類B
class ConcreteProductB : public Product {
public:
    void use() override {
        std::cout << "Using ConcreteProductB"<< std::endl;
    }
};
  1. 接下來,定義一個工廠類(Factory),用于根據輸入參數創建不同類型的對象:
class Factory {
public:
    static Product* createProduct(const std::string& type) {
        if (type == "A") {
            return new ConcreteProductA();
        } else if (type == "B") {
            return new ConcreteProductB();
        } else {
            return nullptr;
        }
    }
};
  1. 最后,在主函數中使用工廠類創建對象并調用其方法:
int main() {
    // 創建對象
    Product* productA = Factory::createProduct("A");
    Product* productB = Factory::createProduct("B");

    // 使用對象
    productA->use();
    productB->use();

    // 釋放內存
    delete productA;
    delete productB;

    return 0;
}

運行上述代碼,將會輸出:

Using ConcreteProductA
Using ConcreteProductB

這樣,我們就成功地使用C++工廠模式創建了不同類型的對象。當需要添加新的產品類型時,只需創建新的派生類并在工廠類中添加相應的創建邏輯即可。

0
苍溪县| 赤水市| 屯留县| 新郑市| 青田县| 全南县| 兴化市| 阿合奇县| 永胜县| 平和县| 伽师县| 永兴县| 襄城县| 安康市| 出国| 天祝| 尼木县| 北辰区| 常宁市| 龙陵县| 华安县| 章丘市| 固始县| 衡南县| 平阳县| 鄱阳县| 密山市| 吴忠市| 合川市| 曲阜市| 武义县| 宜丰县| 霍山县| 新绛县| 高台县| 南靖县| 彩票| 德庆县| 桃园县| 郓城县| 施甸县|