Which brings up another question actually, I'm interested if there's an alternative way to do animation apart from sprite sheets?
I'm not sure if you're grasping the potential of C++ and OpenGL. With C++ you can basically do, whatever a computer is capable of doing, that is everything. The catch is though, that you need to do it manually on your own. But since we don't want to reinvent the wheel every single time, there are libraries and tools that make our life easier. SFML for instance provides a nice API to handle images, audio, input, networking and most importantly OpenGL context and window creation.
So as you see, when you ask, if there are alternative ways to do animation, the question doesn't really help much, because you can do animations the way you want, as long as you can think of an idea on how to implement it in C++ (and OpenGL).
With modern GPUs the direction of creating animations and effects drifts towards using shaders, with which you can do quite amazing stuff. For example here you get a demo which uses one quad and does all the animation in a shader:
C++ can do anything, but since you have to do it manually, you might still want to use a software (often also written in C++), that provides a nice environment to easily create animations and then export it and somehow load it for your application.
It all depends on the complexity of the scene and how good you are at writing code.
And yes spritesheets is the most common way to do 2D animation.