check out nanoos, its an OS project in C++!
In answer to your question:
An operating system (commonly
abbreviated to either OS or O/S) is an
interface between hardware and
applications; it is responsible for
the management and coordination of
activities and the sharing of the
limited resources of the computer. The
operating system acts as a host for
applications that are run on the
machine. So you need to learn the bits in C++ that enable your program (OS) to interact with the hardware it will be running on.
Then it needs to go beyond interacting with the hardware and providing use to the user.
For that, go back once again and see what is being attempted in the nanoos as a starting point (for C++ learning needs of what building an OS in C++ would entail)
Features found in nanoos:
Basically, to write an Operating System, just check out what an OS needs to do (or what it is)
If I was to write an OS, before even considering the language, I would try to understand what an OS is, this is a great book: Operating Systems Design and Implementation.
Have a read. Good luck