Есть такой паттерн синглетон
class Singleton
{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
}
//.cpp
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance() {
if(_instance == 0){
_instance = new Singleton;
}
return _instance;
}
И сказано, что статические ф-ии не могут обращаться к нестатическим методам класса, так вот почему статической ф-ии getInstance вдруг разрешено вызывать приватный конструктор? Ведь специально закрытым сделали, а тут лезет static. Как так?