C++ 是一门编程语言,请注意它仅仅是一门编程语言。这句话的意思就是一旦有人在做语言好坏之争的时候,一笑而过即可。特定的语言只是用来在特定的领域解决特定的问题,仅此而已,尤其是现在众多语言纷飞的年代,这句话的正确性不容置疑。
在编程领域里,每个人都会有他/她的入门语言,各持己见。我个人认为 C 语言是一个很不错的选择,语法简单,深度可深可浅,高级语言的鼻祖。很重要的一点是现今的各种编程语言,或多或少都是 C 语言的衍生品,或者是衍生品的衍生品。语言相通,只要 C 语言学好了,上手其他语言问题不大。C 语言的灵魂在于指针,指针可以帮助你更好的理解内存,理解操作系统的工作机理。
C++ 就是 C 的衍生品之一,兼容 C 语言。起初的目的是扩展 C 语言“C with Classes”,但是后来随着发展,C++ 标准中加入了:虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)等。C++ 变得强大的同时也变的异常复杂,同时随着新内容的增加,C++ 离 C 也就越来越远(思想而非语法)。
C++ 是一门争议性语言,喜欢研究的人很多,吐槽的(包括一些大神级的人物)的人也很多。在 C/C++ 的时代(C/C++刚出道的时候),语言的可选性较少,所以 C++ 干了许多事情,现在时代不一样了,正如我前面所谓语言纷飞,针对性语言众多,程序员的选择性也就多了(有很多的优秀的语言可以去学,C#,java,php,python,ruby……),所以 C++ 不再是必须品。