The Unreal Tournament open source code (432 headers) contains the Unreal kernel class library declarations written in C ++. I found this to be a rich example of a large object oriented program. This taught me a lot about how to modulate and object-orient my code. It also demonstrates many tactics for getting a handle to a large code base.
Also, since all you can read is header files, you will enjoy (and educational) time trying to figure out how it all goes together. (Actually, I wrote my own x86 disassembler so that I can cheat and read some definitions!)
In the same note, the Doom 3 SDK contains a large chunk of the Doom / Quake mechanism, written in very readable C ++.