• 【转】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++不能用来写小型工具吧?

  • 相关阅读:
    js中属性点.和中括号[]的关系。
    jQuery中的$(window).load()与$(document).ready()以及jquery $(document).ready() 与window.onload的区别
    今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?
    原生js 当前时间 倒计时代码
    一看就懂得移动端rem布局、rem如何换算
    使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)
    js运算符的一些特殊应用
    中文目录对 sublime text 有什么影响?
    Spring的注解@Qualifier小结
    伪共享(False Sharing)
  • 原文地址:https://www.cnblogs.com/riversHahaha/p/4578873.html
Copyright © 2020-2023  润新知