I don't know what kind of C++ that was. :)
C++ has had clearly defined standards for a long time; nowhere was there any "Type" keyword.
Even so, all C++ keywords are lower-case.
Lippman's book is reasonably old, isn't it?
But if it mentions the C++11 Standard from a near-future or present standpoint than you'll be okay.
Iostream.h is an old, deprecated, (originally nonstandard) header that was developed as a type-safe IO. The extensionless version is up to date, and standardised.
A very brief article about the differences:
http://members.gamedev.net/sicrane/articles/iostream.html
C++11 support is finally reaching completion.
I would suggest GCC, the GNU Compiler Collection. It's widely portable, completely up-to-date, and is mostly or completely standards-compliant (most compilers are not).
Here:
http://gcc.gnu.org/
This is my favorite compiler, unfortunately I'm stuck with Microsoft's proprietary cl.exe now. (This is Visual Studio, the professional version, as linked somewhere above my post)
As for private versus protected:
Private denies access to all non-members, including subclasses (derivations) inheriting with public.
Protected denies access to all non-members, but is accessible down the inheritance chain.
When you need to propagate a function or field that should be private down a inheritance chain, you should declare that method as protected. This way it's not exposed to the outside world.