91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何結合C++特性設計工廠模式

c++
小樊
82
2024-09-07 06:02:41
欄目: 編程語言

在C++中,我們可以使用C++的特性(如模板、繼承、智能指針等)來設計一個靈活且類型安全的工廠模式

首先,我們創建一個基類 Product 和幾個派生類,這些派生類將代表我們要在工廠中創建的對象。

#include<iostream>
#include<memory>
#include<string>

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

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

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

接下來,我們創建一個工廠類 Factory,它將負責根據輸入參數創建不同類型的 Product 對象。為了實現這一點,我們可以使用模板和智能指針。

// 工廠類 Factory
class Factory {
public:
    template<typename T>
    static std::unique_ptr<Product> create() {
        return std::make_unique<T>();
    }
};

現在,我們可以使用 Factory 類來創建不同類型的 Product 對象。

int main() {
    // 創建 ProductA 對象
    auto productA = Factory::create<ProductA>();
    productA->use();

    // 創建 ProductB 對象
    auto productB = Factory::create<ProductB>();
    productB->use();

    return 0;
}

這個例子展示了如何使用C++特性(如模板和智能指針)來設計一個簡單且類型安全的工廠模式。當然,這只是一個基本示例,實際應用中的工廠模式可能會更加復雜。

0
报价| 台南市| 新兴县| 池州市| 平潭县| 南昌市| 福清市| 桦南县| 高阳县| 华坪县| 依安县| 黑水县| 电白县| 山东| 新乡市| 通海县| 屯昌县| 武义县| 峨眉山市| 邯郸县| 武宁县| 南宁市| 桑植县| 资源县| 凯里市| 团风县| 习水县| 溆浦县| 内黄县| 邵东县| 利津县| 宜阳县| 太仓市| 西宁市| 安宁市| 麻城市| 彰化县| 通城县| 环江| 洛宁县| 华亭县|