Wenn die Methode statisch ist, wird this
nicht implizit definiert, so dass die Frage nicht gilt.
Auf der anderen Seite, wenn die Methode ein nicht-statisches Mitglied ist, gibt es einen großen Unterschied.
Cl& Cl::getInstance()
{
static Cl instance;
return instance;
}
hier immer die gleiche Instanz zurück, auch aus mehreren Instanzen derselben Klasse genannt: eine Singleton (Irreführende als die zurückgegebene Instanz hat nichts mit der Anrufer Instanz zu tun)
Cl& Cl::getInstance()
{
return *this;
}
oben, Sie geben die aktuelle Instanz zurück (nicht von großem Interesse ...)
EDIT: vielleicht ist Ihre Frage zu der singleton design pattern wo kein Objekt kann eine gültigeerhalten 0 Objekt ohne getInstance()
zu verwenden, da der Konstruktor privat ist, und in diesem Fall das Interesse ist, dass es die gleiche Instanz für jeden Anrufer zurück:
Cl& Cl::getInstance() // static method
{
static Cl instance; // constructor is private, only can be called from here
return instance;
}
Es gibt keine 'this' in statischen Methoden (Ich gehe davon aus dieser Methode statisch). – tkausl
niemand sagte, es sei eine statische Methode. Es gibt nur eine statische Variable zurück. –
Verzeihung, ich habe vergessen hinzuzufügen, diese Methode ist statisch – malocho