学习C++你是否会有以下几点误解?

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

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

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

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

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

学习C++开发技术,常见误解有哪些?

下面来一一解释
误解一:“要理解C++,你必须先学习C”

学习C++基础编程比学习C要容易地多。

C几乎是C++的一个子集,但是它不是最先要学习的最好的子集,因为C缺少计数支持,类型安全,和易用的标准库,而C++为简单任务提供了这些。

误解二:“C++是一门面向对象的语言”

C++支持OOP和其他编程风格,但它并不局限于狭隘的“面向对象”。它综合地支持了包括面向对象和泛型编程技术。通常,一个问题的最优解决方案,包含不止一种风格(范例)。“最优”,我指的是最短、最易于理解、最有效率和最易于维护等。

“C++是一门面向对象的语言”使人们认为C++不是必要的(当与C做比较时),除非你需要一个巨大的类继承层次以及很多须函数(运行时多态)——对很多人和很多问题,这样应用并不合适。相信这个误区导致C++因为不是纯面向对象而遭到谴责;毕竟,如果你把“好”和“面向对象”等同起来,那么C++明显包含了很多不是面向对象的东西,一定会被认为是“不好”。不管是哪种情形,这个误解为不学习C++提供了一个很好的借口

误解三:“为了软件可靠性,你需要垃圾回收”

在回收不再使用的内存上,垃圾回收做的很好,但是并不完美。它并非灵丹妙药。因为内存可以被间接地引用,并且很多资源并不是普通内存。

误解四:“为了效率,你必须编写底层代码”

许多人相信高效率的代码必须是底层代码。一些人甚至认为底层代码天生就是高效的(“如果代码很丑陋,那它一定很高效!一定有人花费了大量时间和精力来优化它!”)。当然,你仅仅使用底层代码是可以写出高效代码的,并且有时在直接处理机器资源时必须使用底层代码。

然而,你一定要衡量一下工作是否有价值:现代C++编译器非常高效,而现代机器架构非常复杂。如果必须使用底层代码,一定要通过接口封装起来,以便于使用。通常,通过高层接口封装底层代码,会带来更好的优化(如,避免“滥用”底层代码)。在关注效率的场合,首先尝试用高层抽象来呈现需要的解决方案,而不要不加考虑地使用比特位和指针。

误解五:“C++只适用于大型、复杂的程序”

C++是一个巨型的语言。它定义的大小和C#与Java差不多。但是这并不意味着你必须知道每一个细节,或者在每一个程序中都用到所有特性

C++学习资料免费领

学习C++开发技术,常见误解有哪些?相关推荐

  1. 循序渐进学习嵌入式开发技术

     嵌入式时代已经来临,你还在等什么?   ---循序渐进学习嵌入式开发技术最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的 ...

  2. 数据怎么转化成图形分析?快来学习Echarts5开发技术

    目录 一. Apache ECharts 1.1 引入 Apache ECharts 1.2 开始简单的图表 二. 图表容器及大小 三. 数据集 四. 多个 dataset 以及如何引用他们 五. 使 ...

  3. SAAS开发技术学习内容分享

    SAAS开发技术学习内容分享,SAAS开发技术涉及的知识点有很多,比如SAAS-HRM系统概述与搭建环境,多租户数据库设计方案,组织机构管理的需求分析,部门微服务等内容. SaaS是Software- ...

  4. 零基础学python需要多久-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  5. 自学python需要多长时间-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  6. 我是小白0基础,现在我想学习前端开发,该如何系统的学习?

    以下纯属个人观点和建议,肯定是有局限性的,但是也希望能给你带来一些帮助. 开始 我们俨然能感受到前端岗位现在已经发展成了最重要的研发岗位之一,所以多我们提出的要求也就越来越高了.所以我们需要的也就不仅 ...

  7. 怎么学习前端开发?求推荐学习路线?

    前端是一个看似入门门槛不高,但要学好很难的领域.前端的知识体系庞杂又松散,技术演进快,如果摸不清脉络的话很容易陷入盲人摸象的困境甚至跑偏. 其实只要掌握了正确的方法,学习前端和学好前端就只是个时间问题 ...

  8. 学习Web前端技术,掌握JavaScript这门语言是必须的

    相信每一个想要学习前端的人对于前端三剑客html+css+js都不会陌生,这些可以说是一个前端的基本配置,而在前端的世界里,没有什么是JavaScript实现不了的.关于JS有一句话:凡是可以用Jav ...

  9. 0基础学python要多久-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

最新文章

  1. YOLOv4全文阅读(全文中文翻译)
  2. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  3. PyTorch中文版官方教程来啦(附pdf下载)
  4. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统
  5. [bzoj1088]扫雷
  6. Computer Browser服务不能启动
  7. boost::lambda模块实现boost::function 进行测试
  8. 利用Java的BigDecimal与马青公式精确计算π后10000位,
  9. 将枚举的键值绑定到下拉列表框
  10. wacom mac驱动_MAC系统装Wacom手绘板的方法及注意事项
  11. 让input标签的range属性显示数值
  12. python特征选择后显示选取的特征名_python实现求特征选择的信息增益
  13. 有感于去哪儿的一道笔试题
  14. MongoDB快速入门(五)- Where子句
  15. VMware中centos6.5 minimal 使用NAT模式联网
  16. 高精度三维空间测量、定位与追踪(上)
  17. linux下如何给home目录分配空间,Linux 分配/home的磁盘空间给根目录
  18. 向量的数量积和向量积
  19. 从《大国崛起》(英国)看中国软件的发展
  20. 家常炖菜,拌海带丝,炝土豆丝

热门文章

  1. [转载] Python字典按照keys排序输出为列表
  2. [转载] Python中Numpy包的用法
  3. [转载] 【RTTmicropython教程】玩转 Web 服务器
  4. [转载] python numpy矩阵运算加速器 NumExpr
  5. Effective C++条款05:了解C++默默编写并调用哪些函数
  6. ucos任务调度函数 OSSched()函数分析 ,任务切换函数
  7. backgroud背景色样式兼容ie8 rgba()用法
  8. 构造函数_析构函数_深拷贝与浅拷贝
  9. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
  10. 男人要走过几条路才称得上男子汉?