C ++:抽象工厂可以处理模板类吗?

问题描述 投票:-1回答:1

我有一个使用模板的类层次结构:

template <typename T>
class BaseClass
{
public:
    BaseClass(const std::string& inputName)
        :
        myMember(std::make_shared<T>(inputName))
    {}
private:
    const std::shared_ptr<T> myMember;
};

class UsedByDerived 
{
public:
    UsedByDerived(const std::string& inputName)
        :
        myInputName(inputName)
    {}
private:
    const std::string myInputName;
};

class DerivedClass : public BaseClass<UsedByDerived>
{
public:
    DerivedClass()
        :
        BaseClass<UsedByDerived>("X")
    {}
};

我有多个这样的派生类(每个类都有不同的构造函数签名),我想做一个抽象工厂来处理实例化。基础工厂是

template <typename T>
class BaseFactory
{
public:
    virtual std::shared_ptr<BaseClass<T>> createProduct() = 0;
};

我想知道派生工厂类应该是什么样子(或者这是否行不通?),但是尚不清楚应如何实现它……:

class DerivedFactory
{
public:
    std::shared_ptr<BaseClass</* what should this be? */>> createProduct()
    {
        // what should this return?
    }
};
c++ templates factory abstract-factory class-template
1个回答
-1
投票
因为python方法论会招手,我们在这里都是大人。。您

can

© www.soinside.com 2019 - 2024. All rights reserved.