我有一个要转换为单例的类(测试)。我正在考虑将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变成单例? (显然,第一次实例调用将使用参数,而随后的实例调用将忽略参数)