Arduino as a tool for learning C++?

Hi,
I agree: coding with no hardware is not a good learning environment.

A couple of books I've used are good:

Beginning C for Arduino, Second Edition: Learn C Programming for the Arduino

DISCLAIMER: I am the technical editor of that book; I don't make any future money on it!

Beginning Arduino (Technology in Action)

I think this is the best overall Arduino book and lots of programming examples and projects.