搜索
查看: 1451|回复: 9
打印 上一主题 下一主题

c语言与c++的区别!!

[复制链接]
楼主
发表于 2013-12-15 12:27:38 | 显示全部楼层
1. C不是C++的基础
2. C++编译器可以编译大多数C程序,你可以认为C++ 大体上"向下兼容" C
3. C和C++一样可以做窗口

C和C++是两种设计和态度完全不同的语言,C是最小化设计原则,不必要的语法特性是没有的,而且最初是用来写操作系统的,并且要兼容古老的B代码。而C++完全不同,它尽可能地去提供一切程序员需要的抽象手段,所以复杂度和C完全不可同日而语。

所以说C和C++的相同之处也只限于C++编译器能编译很多C代码,一件事情,在C中的做法和C++中的做法通常来说是不同的

如果你的目的是学C++那么就直接去学C++,不用绕路去学C,这也是C++语言设计者和几位著名C++传道士的观点
沙发
发表于 2013-12-15 13:09:32 | 显示全部楼层
详细来说两种语言的差别:

1. 类型检查
C: 弱类型,因为要重复利用用无类型语言B写好的代码,有复杂的隐式转换,以至于array可以和指针之间进行隐式转换
C++: 大体上兼容C,但是禁止了(*void)向其他类型指针的转换,加入新关键字new,提倡让编译器检查类型,是比较现代的做法。

2. 泛型
C: 当初还没有泛型这个概念,所以C在语法层面上不支持泛型,也没有办法用C写出有良好泛型特性的接口
C++: 通过模板来支持泛型,但是之后模板被开发出了很多用法,极其复杂,难以Debug

3. 面向对象特性(OB或OO)
C: 语法层面上不支持,可以写出基于对象的代码(Object-Based)
C++: 有一套完整的语法体系来支持,支持多重继承和虚拟继承,比现今主流的OO做法要复杂

4.标准库
C: 标准库很小,必须求助于第三方库
C++: 虽然不如一个语言一个平台的90年代语言那么丰富,但常用的数据结构还是有的
板凳
发表于 2013-12-16 00:27:22 | 显示全部楼层
uir1393513835 发表于 2013-12-15 21:06
C++是有C语言发展而来。
C是面向过程,C++是面向对象,C++中有类、对象等概念,函数也比C中要强大,一般用 ...

这样说就不大正确了,C++在语法层面上直接支持面向过程,面向对象,以及泛型编程三类编程范式,不止面向对象一种。
C++一般用于开发大型项目也不确切,很多小程序用C++写也比C方便,毕竟标准库大很多。而且C也可以用来开发大型项目,例如GNU那么多东西,很多都是纯C的。
地板
发表于 2013-12-16 00:30:49 | 显示全部楼层
shelyas 发表于 2013-12-15 21:32
我想问下 比方说 我想开发一款超市收费软件。用c++能写出来吗~~~?还是我需要学习其他类型的编译器?大神 ...

开发软件要学的不是编译器,而是开发平台(常用的库和接口等等)
超市收费软件我不了解,事实上C++什么都能写,只是用在这个方面多或少的问题。
一般所谓企业级应用,用java或C#的比较多吧

如果说收费软件,还是做手机软件吧……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表