The classes won't be consistent, no. AFAIK
.NET is tied to Microsoft's c# language, which is very different from c and largely different from c++ (its actually more like java than anything)
You can run c# programs on Linux using Mono - I must admit my ignorance on how much of it is supported.
If you want to write properly cross platform c or c++, you should only use ANSI c or c++ . These you can find out about from google.
As for books, it'll depend on the style of book you like - I'm always pretty keen on O'Reilly's stuff, though they may be a little dry for some. Kernighan & Ritchie's "The C language" is the bible for C and Stroustrop's "The C++ Programming Language" perfoms a similar role for C++.
Don't Stand on your head - you'll get footprints in your hair