Well...
You can, hypothetically, write good code in C++, the problem is that C++ is so incredibly complex, that most programmers only know a fraction of it very passingly. So typically they have little idea what their code does. Combine that with no memory safety and you get a recipe for disaster.
The few people actually knowing C++ don't write software (except for compilers), they tour the world teaching C++.
C has similar problems, but at least it's low level enough that you can understand what's happening and therefore know where to focus your attention on.
Actually today the ideal language for something like a PDF reader might actually be Delphi. There's now a full free cross-platform implementation around. It's got memory safety, integer bounds check, array bounds check, a platform independent GUI toolkit which looks native on every system.