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

  • 相关阅读:
    CTF中特别小的EXE是怎么生成的
    递归和动态规划裸题分析
    三次样条插值拟合函数,预测下明后天的疫情
    存储器总结。2019.12.26
    存储器
    江科大计算方法实验
    海明码一篇文章彻底搞懂
    江科大数据库实验
    大数据是什么
    B站自动刷弹幕
  • 原文地址:https://www.cnblogs.com/riversHahaha/p/4578873.html
Copyright © 2011-2022 走看看