根据此代码提出的一个问题
Cl& Cl::getInstance()
{
static Cl instance;
return instance;
}
我通过此代码实现了什么,如果我将返回this
,那将会有什么不同。
*此方法是静态的
答案 0 :(得分:2)
如果方法是静态的,则不会隐式定义this
,因此该问题不适用。
另一方面,如果该方法是非静态成员,则存在巨大差异。
Cl& Cl::getInstance()
{
static Cl instance;
return instance;
}
这里你总是返回同一个实例,甚至从同一个类的几个实例调用:a singleton (误导为返回的实例与调用者实例无关)
Cl& Cl::getInstance()
{
return *this;
}
以上,您将返回当前实例(不是很感兴趣...)
编辑:也许你的问题与singleton design pattern有关,其中没有对象可以在不使用Cl
的情况下获得有效的getInstance()
对象,因为构造函数是私有的,在这种情况下,兴趣是它为每个调用者返回相同的实例:
Cl& Cl::getInstance() // static method
{
static Cl instance; // constructor is private, only can be called from here
return instance;
}