【转】C++之父:C++ 的五个普遍误解

文章三部分如下:

1.http://blog.jobbole.com/82460/

2.http://blog.jobbole.com/82461/

3.http://blog.jobbole.com/82628/

总结一下提到的五点:

  • 1. “要理解C++,你必须先学习C”
  • 2. “C++是一门面向对象的语言”
  • 3. “为了软件可靠性,你需要垃圾回收”
  • 4. “为了效率,你必须编写底层代码”
  • 5. “C++只适用于大型、复杂的程序”

表达一下个人愚见:

1.“要理解C++,你必须先学习C”

不先学c的好处是,有些c的坑,可以不跳进去。因为c++其实隐藏了c里面的坑,所以直接用c++的话,可以避免一些奇怪的错误。(适合快速入门)

不先学c的坏处,有些底层的东西不懂没法走得更远,由于c能接触更底层,更少封装,可能更能程序员对内存分配等更熟悉(适合深入学习)

2.“C++是一门面向对象的语言”

effective c++ 中 条款1就已经提到c++是个语言联邦

确实是这样,c++不单纯面向对象,它有面向过程(c的部分),和泛型等,所以它实现一种东西可能会有好几种方法。

也就是在c++的代码中看到的不只是面向对象的东西,还会有各种东西混入。一个c++的程序员除了有oo的思维还不够?还要兼顾c++的其他特性?才能写出优秀的c++代码?

文中也提到了一些关于虚函数的不好之处:

引用原文:<C++代码必须是面向对象的想法(即到处使用类继承和虚方法),可能严重损坏效率。如果你需要一组类型的运行时解决方案,面向对象编程的观点是伟大的。我 就经常使用它。

然而,它是相对严格的(并不是每个类型都适应类继承),并且虚方法调用抑制了内链函数(它可以在一些简单而重要的场景中降低你50倍的速 度)。>

3.“为了软件可靠性,你需要垃圾回收”

我觉得这里主要说的是,程序员应该更多地去主动管理内存,而不是依赖于垃圾回收机制。还有我觉得这里有hardsell智能指针的嫌疑

4. “为了效率,你必须编写底层代码”

感觉这段主要是通过介绍stl的sort比c的qsort快,来说明c++的优势。。。哈哈

5. “C++只适用于大型、复杂的程序”

这段主要是想说明c++也可以很容易(少量代码)地写出小型程序?(应该没有脚本语言那么容易吧)

好吧,因为我也经常觉得c++开发好麻烦啊,一般写小工具都不会用c++,还觉得0基础学android也比学c++容易。

其实我认为就是c++用得不好会有问题,但不代表c++不能用来写小型工具吧?

原文地址:https://www.cnblogs.com/riversHahaha/p/4578873.html