Can anyone tell me why factory pattern depend on static ? is it because static inheritance allows objects to be instantiated or static member data can be shared across all instances or static member function doesn't need to be called from an instance of their own class or static data at function scope persists between function calls here?

Code:
class  Vehcle{ 
public: 
    virtual void displayVehcle() = 0; 
    static Vehicle* Create(VehcleType type); 
}; 
class TwoWheeler : public Vehcle { 
public: 
    void printVehcle() { 
        cout << "two wheeler" << endl; 
    } 
}; 
class ThreeWheeler : public Vehcle { 
public: 
    void printVehcle() { 
        cout << "three wheeler" << endl; 
    } 
}; 
class FourWheeler : public Vehcle { 
    public: 
    void printVehcle() { 
        cout << "four wheeler" << endl; 
    } 
}; 
  
Vehcle* Vehcle::Create(VehcleType type) { 
    if (type == VT_TwoWheeler) 
        return new TwoWheeler(); 
    else if (type == VT_ThreeWheeler) 
        return new ThreeWheeler(); 
    else if (type == VT_FourWheeler) 
        return new FourWheeler(); 
    else return NULL; 
}