C++是一门算法语言。国际标准是ISO C++,正式标准版本有ISO C++98/ISO C++2003。目前正在制定的标准版本ISO C++0x。目前而言,没有完全符合标准的编译器(例如几乎所有的编译器都无视export关键字的功能)。最初的C++是C语言的扩充,但两者的标准是独立的,目前而言C++和C不完全兼容。
Microsoft Visual C++是一个C/C++ IDE(集成开发环境),在Microsoft Visual Studio套装中。VC++附带的编译器是Microsoft C&C++ Compiler,调试器Microsoft Visual Studio Debugger。VC++也可以指Microsoft C&C++ Compiler支持的一种C++的方言。由于Microsoft C++扩展特性的存在,VC++不是ISO C++的子集。此外,各个版本有所不同,最近的VS2010支持部分C++0x特性。
VC++6.0对标准支持不好,不建议使用。像嵌套模板之类VC++6.0就编译不过。
一般可以用更高版本的VS选装其中的VC++,例如VS2005、VS2008。VS附带了一些Windows环境下的库,例如MFC、ATL。
不过VS体积比较大,如果只是为了学习C++语言(而不是VC++),可以装Dev-C++。附带编译器是MinGW环境下的GCC/G++。G++相对于VC++来说支持的语言特性更接近于ISO C++。
掌握C++的时间,如果只是写基本的程序,不用几个星期。但是要熟练地应用,由于其中的方法过于灵活,可能需要几年;取决于各人水平。
不建议拿谭某人的书当教材,很多内容很模糊,容易被误导。 long12310225 说的是VC++的学习流程,不是C++的。花在语言的时间太少了。另外,Windows API根本就不是C++的内容(虽然可以用C++调用)。跟着微软是不是饿不死很难说,M$近几年来一直都在把重点放在.NET上(目前仍然是),虽然最近似乎又开始发展VC++了,不过怎么说也不可能是最大头的。
一般而言,尽可能先学C++,而不要直接学VC++(比C++省略了一些东西,加了很多不通用的东西),否则万一需要迁移平台,付出的代价会很大。当然,如果愿意把自己捆死在Windows平台上,先学VC++也无妨。
====
[原创回答团]
参考资料:原创