【转】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++不能用来写小型工具吧?
【转】C++之父:C++ 的五个普遍误解的更多相关文章
- iOS开发--ChildViewController实现订单页的切换
先不说废话, 上效果图, 代码量也不大, 也不上传github骗星星了, 你们复制粘贴下代码, 就可以轻而易举的弄出一个小demo. 这个代码的实现并不复杂, 甚至于说非常简单, 就是逻辑有点小绕, ...
- 【分布式】Zookeeper使用--命令行
一.前言 在学习了Zookeeper相关的理论知识后,下面接着学习对Zookeeper的相关操作. 二.Zookeeper部署 Zookeeper的部署相对来说还是比较简单,读者可以在网上找到相应的教 ...
- iOS开发——UI基础-屏幕适配
一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在 ...
- 《深入理解javascript原型和闭包系列》 知识点整理(转)
深入理解javascript原型和闭包系列 对原型和闭包等相关知识的讲解,由浅入深,通俗易懂,每个字都值得细细研究. 一.一切都是对象 1. typeof操作符输出6种类型:string boolea ...
- 《深入理解javascript原型和闭包系列》 知识点整理
深入理解javascript原型和闭包系列 对原型和闭包等相关知识的讲解,由浅入深,通俗易懂,每个字都值得细细研究. 一.一切都是对象 1. typeof操作符输出6种类型:string boolea ...
- A*寻路算法的探寻与改良(二)
A*寻路算法的探寻与改良(二) by:田宇轩 第二部分:这部分内容主要是使用C语言编程实现A*, ...
- Js DOM 详解
DOM事件类 基本概念 DOM事件的级别 1.DOM0 element.onclick = function(){} 2.DOM2 element.addEventListener("cli ...
- Linux信号实践(3) --信号内核表示
信号在内核中的表示 执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending).进程可以选择阻塞(Block)某个信号.被阻塞的信号产生时将保持在未 ...
- 微信小程序----wxss设置样式
一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视图容器(View Container): 二.基础内容(Basic Content) 组件名 说明 组件名 说明 vie ...
随机推荐
- arcgis server之路网服务发布
路网服务发布首先需要建立好道路的网络集,为了保证道路网络分析的准确性,建立网络集之前,要对道路图层进行拓扑差错,确保道路的连通性.具体操作流程为:道路拓扑差错-建立几何网络集-路网服务发布. 1.道路 ...
- gcc boost版本冲突解决日记
问题背景 项目在Ubuntu10 64位 boost 1.55,boost采用的是项目内包含相对目录的形式部署 项目采用了 -Wall -Wextra -Werror -Wconversion 最高的 ...
- UITextField的代理方法:textField:shouldChangeCharactersInRange:replacementString
原文链接:http://www.cnblogs.com/zhanggui/p/6101813.html 这个我在开发的过程中用到的次数最多,因此这里就简单对其进行分析.先看看Command+点击 弹出 ...
- php关键词替换的类(避免重复替换,保留与还原原始链接)
转载:http://www.169it.com/blog_article/601549531.html 本节主要内容:一个关键词替换的类 主要可以用于关键词过滤,或关键词查找替换方面. 实现过程分析: ...
- java读取txt/pdf/xls/xlsx/doc/docx/ppt/pptx
环境准备txt利用common-iopdf利用pdfbox剩下的用POI关于POI,读取xls没啥特别的,主要是读取doc和ppt,需要下载poi源代码,然后将poi-src-3.7-20101029 ...
- EasyUI 中点击取消按钮关闭Dialog(对话框窗口)
<div id="dl1" class="easyui-dialog" title="窗口"style="width:400 ...
- Hadoop Cluster 安装
本篇源自Hadoop官网,先将中文翻译如下. 目标 本文章主要是描述如何安装和配置几个节点的Hadoop clusters,甚至于数以千计的节点数.为了了解详细的安装步骤,需要先了解如何安装在单台机器 ...
- SQL报表(Report Builder)里面的几个常见问题(持续更新)
一 SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B) ,, B) 但是我们不能这么写: ,,A/B) //我们不能这么写,会产生BUG,至于什么B ...
- 《InsideUE4》GamePlay架构(十)总结
世界那么大,我想去看看 引言 通过对前九篇的介绍,至此我们已经了解了UE里的游戏世界组织方式和游戏业务逻辑的控制.行百里者半九十,前述的篇章里我们的目光往往专注在于特定一个类或者对象,一方面固然可以让 ...
- PhotoShop算法原理解析系列 - 风格化---》查找边缘。
之所以不写系列文章一.系列文章二这样的标题,是因为我不知道我能坚持多久.我知道我对事情的表达能力和语言的丰富性方面的天赋不高.而一段代码需要我去用心的把他从基本原理-->初步实现-->优化 ...