将单例模板应用于带有参数化构造函数的类

时间:2019-04-28 13:47:20

标签: c++ class parameters singleton

我有一个要转换为单例的类(测试)。我正在考虑将Test类声明为要重用的Singleton模板类的后代:

template <typename T>
class Singleton
{
    public:
        static T& getInstance()
        {
            static T instance;
            return instance;
        }
    protected:
        Singleton() {}
        ~Singleton() {}
    public:
        Singleton(Singleton const &) = delete;
        Singleton& operator=(Singleton const &) = delete;
};

如果构造函数需要参数,如何使用该模板(通常)将类变成单例?例如,测试可能是:

class Test {
  public:
    Test(int A);
}

是否可以使用上述模板将Test变成单例? (显然,第一次实例调用将使用参数,而随后的实例调用将忽略参数)

0 个答案:

没有答案