Why would you want an empty, invalid instance of sf::Image?
Because I might want to free the dynamic memory of the image without destructing the image (class) itself as it might be part of some resource management structure which I don't want to change at that point.
Anyway, this solution should work too:
image = sf::Image();
Yeah, should work, but... ugh...
Wouldn't it be simpler to make Reset() public? Maybe you want to keep the public interface as small as possible so you can change the internals without breaking the interface, but in my opinion a reset function for images makes enough sense to have it in the public interface.