易截截图软件、单文件、免安装、纯绿色、仅160KB

为什么C++?

问题
为什么用C++呢? 在你皱着眉头离开之前,试着回答这个简单的问题。效率,是么?人人都知道这个。但情况是,当一个人开始讨论编程语言或与其相关的话题时,他必须要非常明确而有针对性。为什么呢?我来问你另一个问题:如果效率是人们使用C++的唯一理由,那么为啥不直接用C呢?C被认为比C++效率更高(嗯嗯,我知道C没有比C++的效率高多少,所以这里别误解我的意思,因为即使它们二者效率相同,刚才的问题依然存在)。
迷思
我知道你又要说“更好的抽象机制”了,因为毕竟C++是要设计成一个更好的C的。C++没有牺牲效率,同时又添加了这么多高级特性。但问题是,“开发者们真的需要这些高级特性么?”。毕竟我们一直听人讲KISS之类的东西。我们也都听到有声称C比C++更KISS所以我们要用C云云。这种持续不断的争论将C与C++之间的比较变成了一个大大的迷题(或者说是混乱)。令人惊讶的是,貌似的确有很多人更加倾向于用C,最大的理由就是C++实在是太难用对了。甚至Linus也这么想。
这种现象最大的影响就是当人们在C和C++之间权衡时,使人们倾向于使用C。而且一旦人们开始用C,他们很快就适应并满足了(其实,在任何语言乃至任何人类活动中都有此现象,C++亦然,比如常常听到有人说“XX语言我用了这么多年,一直用得好好的”,照这种说法任何图灵完备的语言还不都是能用来编程?)。于是即使他们还没有试试C++,或者他们还没成为好的C++程序员时,他们就开始声称C比C++更好了。然而其实呢,真实的答案往往总是取决于实际情况的。
我说过“取决于实际情况”了么?那到底实际情况是什么呢?显然,有些领域C是更好的选择。例如设备驱动开发就不需要那些OOP/GP技巧。而只是简单的处理数据,真正重要的是程序员确切地知道系统是如何运转的,以及他们正在做什么。那么写操作系统呢?我本人并没有参与任何操作系统的开发,但我读过不少操作系统代码(大多是unix的)。我的感觉是操作系统很大一部分也不需要OOP/GP。
但是,这就表示在所有效率重要的领域,C都是比C++更好的选择么?未必。
答案
让我们一个一个来分析。
首先,当人们关注效率时,有2种效率——时间效率(例如OS,运行时库,实时应用程序,high-demanding的系统)和空间效率(例如各种嵌入式系统)。但是,这样的分类并不能帮我们决定用C还是C++,因为C和C++的时空效率都很高。真正影响选择语言的因素是业务逻辑(这里的“业务逻


相关文档:

修练8年C++面向对象程序设计之体会


六年前,我刚热恋“面向对象”(Object-Oriented)时,一口气记住了近十个定义。六年后,我从几十万行程序中滚爬出来准备写点心得体会时,却无法解释什么是“面向对象”,就象说不清楚什么是数学那样。软件工程中的时髦术语“面向对象分析”和“面向对象设计”,通常是针对&ldqu ......

基于杨辉三角的组合数计算算法(C++实现)

 
关于组合数计算的算法我写了好几个,发现杨辉三角查表法效率比较高!
并且这个算法利用C(n,k) = C(n,n-k)来简化杨辉三角的数组,算法的时间复杂度比较低。
原创,水平有限,如有不足,欢迎指出。
Mail:rainday163@163.com
下面是我写的代码并附带测试函数:Dev-C++ 4.9.9.2下测试通过。
/*----------------- ......

C++中的位拷贝和值拷贝

为了便于说明我们以String类为例:
首先定义String类,而并不实现其成员函数。
Class String{
public:
    String(const char *ch=NULL);//默认构造函数
    String(const String &str);//拷贝构造函数
   ~String(void);
   String &operator=(const St ......

VC++怎样生成DLL

---- 在用PowerBuilder开发应用程序时,经常需要调用动态链接库DLL,本文介绍了动态链接库的基本特点,给出了VC++建立DLL以及在PowerBuilder中调用VC++创建的DLL函数的编程实例,实现了通过DLL连接PowerBuilder和VC++编制的不同程序的目的。
一、 DLL概述:
---- 动态链接库(Dynamic-Link Library),简称DLL,是基于Win ......

Python的C/C++扩展

  Python

C/C++
扩展
                         
By phidoit@gmail.com
 
可扩展性是
Python
的一大特色,一方面,由于
Python
是解释执行的,这导致运行速 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号