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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-12-15 12:27:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
我想问下c语言与c++的本质区别!!c语言应该是c++的基础吗?两者有什么是相同的 ?什么地方有区别?c++我的认知里是可以窗口化独立程序的语言。。我没搞错吧~~~~
不喜勿喷,纯粹新人刚看到c语言的for循环。。。。就是想了解下以后好好学完c是不是过渡到c++上~~~

最佳答案

查看完整内容

1. C不是C++的基础 2. C++编译器可以编译大多数C程序,你可以认为C++ 大体上"向下兼容" C 3. C和C++一样可以做窗口 C和C++是两种设计和态度完全不同的语言,C是最小化设计原则,不必要的语法特性是没有的,而且最初是用来写操作系统的,并且要兼容古老的B代码。而C++完全不同,它尽可能地去提供一切程序员需要的抽象手段,所以复杂度和C完全不可同日而语。 所以说C和C++的相同之处也只限于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:24 | 只看该作者
。。。。。。。。。。。。。。。
地板
发表于 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年代语言那么丰富,但常用的数据结构还是有的
5#
发表于 2013-12-15 21:06:43 | 只看该作者
C++是有C语言发展而来。
C是面向过程,C++是面向对象,C++中有类、对象等概念,函数也比C中要强大,一般用于开发大型项目。
6#
 楼主| 发表于 2013-12-15 21:32:37 | 只看该作者
rosynirvana 发表于 2013-12-15 12:27
1. C不是C++的基础
2. C++编译器可以编译大多数C程序,你可以认为C++ 大体上"向下兼容" C
3. C和C++一样可 ...

我想问下 比方说 我想开发一款超市收费软件。用c++能写出来吗~~~?还是我需要学习其他类型的编译器?大神。。。我一直在看你给其他人的解答,绝对是大神级啊。。望提点下我这个菜鸟~~~我想做收费软件面向市场。。大概的学习周期我定位两年~~你觉得可行吗?我是先学习的网站设计:html  css2 css3 以及php  js,我看c里好多语法结构和我以前学习的js和php很像。
7#
发表于 2013-12-15 22:33:38 | 只看该作者
shelyas 发表于 2013-12-15 21:32
我想问下 比方说 我想开发一款超市收费软件。用c++能写出来吗~~~?还是我需要学习其他类型的编译器?大神 ...

                          
8#
发表于 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的。
9#
发表于 2013-12-16 00:30:49 | 只看该作者
shelyas 发表于 2013-12-15 21:32
我想问下 比方说 我想开发一款超市收费软件。用c++能写出来吗~~~?还是我需要学习其他类型的编译器?大神 ...

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

如果说收费软件,还是做手机软件吧……
10#
 楼主| 发表于 2013-12-16 10:35:03 | 只看该作者
rosynirvana 发表于 2013-12-16 00:30
开发软件要学的不是编译器,而是开发平台(常用的库和接口等等)
超市收费软件我不了解,事实上C++什么都 ...

非常感谢~~还是你不厌其烦的在回答我啊~~我打算怎么也得先把C学完,再考虑其他的吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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