当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

谈论:C和C++哪个难?

    这是我2008年1月8日发表在校内里的一篇文章:

    “C和C++哪个难?”这个问题在还没有学习这两门语言的时候我就跟同学讨论过了,当时只是道听途说,没有什么亲身体会。但是当时对于这个问题的确很疑惑。

    如今我基本掌握了C和C++,接触过一些C的高级编程,也使用过C++的标准模板库(STL),目前正在研究C#(所谓的C++++),回过头来想想这个问题,有了自己的体会和感受,也有了几分资格讨论这个话题了。

    C和C++哪个难?我对这个问题的回答是C++学起来难,但是用起来简单。

    我个人认为C语言里就两个核心的东西——函数和指针,把这两个玩熟了,你的C语言水平就到了一定程度了。

    而到了C++,除了要学习C语言里绝大多数东西以外,还要学习一个重中之重的东西——类。面向对象是门高深的学问,要说学会那是比较困难,要说学通那是相当顶尖的了,目前我只觉得我算是入门了。也许这么说会吓到很多还没接触C++的人,但这却是事实。在C++里,跟面向对象有关的很多概念(比如重载、继承、多态)在C里面是根本没有的,还有什么虚函数、纯虚函数、流、抽象类、模板函数、模板类、异常等等一系列概念,光了解就要花上一定时间,要理解的话就得下苦功夫了。所以说C++比C语言难学。

    在应用方面呢?C++要比C语言方便得多。举个简单的例子,如果学习过《数据结构(C语言版)》的话肯定知道栈在C语言中是如何实现的,不过压栈、弹栈、栈空判断的几个指针如何移动或许你还没绕过来,但是如果你用C++的STL,#include然后栈的操作就那门几句话了。

    stack stk;// 定义栈

    stk.push(…);// 压栈

    stk.pop();//弹栈

    stk.empty();//栈空判断

    貌似你只要知道栈是什么,然后就直接用就可以了,根本不需要知道几个指针具体是怎么移动的,这就是面向对象的封装。在具体的编程过程中,类似的例子会感受颇深。

    目前我在学习。net平台下的C#,又可以抛出一个问题——C、C++和C#哪个难?C#里面的概念更多了,在C++的类里只有成员函数和数据成员,而在C#里面则出现了常数、字段、事件、方法、属性、索引等等概念。但是C#工作在。net平台下面,这么庞大的一个类库几乎帮我们做了所有必要的工作,使我们的操作起来更简单了。所以我的答案照旧:C#比C、C++难学,但是比它们易用。

    我写这篇文章不是讨论哪个语言更优秀,因为这是个争论不休的话题。只是想给那些即将学习或已经学习这些语言的朋友一些参考。

相关内容
赞助商链接