c和c++有什么不同啊
如果可以请举出5点。。
谢谢
问题点数:50、回复次数:13Top
1 楼steedhorse(晨星)回复于 2006-03-06 23:58:23 得分 40
5点?也太容易了吧?对面向对象(OO)和范型(GP)程序设计的支持是C++最重要的两大特性,也是C++区别于C的最大不同点,但即便如此,我们绝口不提OO和GP,举出5点区别也仍然很容易,比如:
(1)C++支持函数重载;
(2)C++支持缺省参数;
(3)C++支持变量的随地声明和初始化;
(4)C++支持引用类型和参数的引用传递;
(5)C++定义结构体变量不再需要写“struct”前缀;
(6)C++支持名字空间;
(7)C++不再支持变量的默认整数类型。Top
2 楼steedhorse(晨星)回复于 2006-03-07 00:01:45 得分 0
注意这些都只是“舍本逐末”的区别,最大的区别还是OO和GP,因为这在相当的程度上带来了程序设计观念的不同。Top
3 楼bohlee(我心澎湃)回复于 2006-03-07 00:31:58 得分 0
不多说了,如果新学者,我告诉你,他们是两种语言就行了Top
4 楼ox_thedarkness()回复于 2006-03-07 01:11:32 得分 10
C和C++根本就是两种语言,写出来的东西也完全不一样。
C的目标是小巧而稳定、强调对底层元素的操作。他是一种强大而纯粹的语言。
代码一般专门性强,小巧快速精炼,复用度不高。
而C++则庞大而支持多种风格。他支持各种需求:从小而过程化的到庞大而通用的... 但是总体来说,C++ 往往给出强大、灵活度高、安全性强、可扩展和重用、而复杂的构架(当然用不好也很容易变成臃肿和充满bug的...C++是我见过最难用的语言)。
steedhorse(晨星) ( ) 列举了C++支持而C不支持的冬冬(不过有些C也支持巴?)。其他的特性,包括一些高级特性:
(1) 支持OBP, 结构(或者类)可以包含成员函数并且也有了访问权概念;以及系统支持的构造、析构机制
(2) 支持OOP, 类继承相关能力 (不过相当难设计)
(3) 支持GP,范型,也就是模板机制 —— 这是一个强大的类型安全代码自动生成器(不过很难设计)
(4) 支持异常机制,提供一种可控性更强的错误处理能力(加上这一点,设计难度高到吐血了)
而C的新近标准 C99 则支持一些C++不支持的特性,主要是让结构和数组的用法更灵活(看起来都很爽阿)
大部分特性都是为了让C更好用更清晰,而不是让他更强大而复杂。(反观C++,每个特性都更强大而更复杂而且暗藏效率问题。。。)
主要特性比如:
(1) 可以在运行时指定长度,定义数组对象
(2) 函数方面。可以在参数表中定义结构,调用时可以使用新语法支持的临时结构和数组作为参数
(3) 对多种类型的初始化提供了新的漂亮而清晰的语法
(4) 大幅度强化宏,令宏支持缺参数、以及不定长参数表
(5) 规范化了结构尾部的不定长数组行为Top
5 楼lei001(太极)回复于 2006-03-07 02:15:16 得分 0
找本看看,不就行了;问这么问题,展开起来太大了Top
6 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2006-03-07 07:39:35 得分 0
学习
Top
7 楼chewl(颇竹)回复于 2006-03-07 07:56:13 得分 0
C++与C有什么不同呢?我们现在一步步地来分析一下
一、类,类我并不说它有什么不好,但是对于初学者,它是一个累赘。类的封装使得初学者对程序产生厌倦,感到不适和麻烦。
二、引用,引用是C++中最臭屁的东西了,最好尽量不要用它,我就是从来不用引用,除非万不得已。引用对于初学者就更容易产生混淆,不知道哪个是引用,哪个是变量。
三、函数的重载,初学者学函数的重载好像没什么坏处,但是,这会使初学者潜意识里对C语言的变量类型的重要性产生淡化,要记住C语言是对变量类型最敏感了的,变量的类型在C语言里的重要性是不言而喻的。
四、流操作符,和上面同样的道理,使得对变量类型的重要性产生淡化,况且,cin这个东东有点儿不怎么方便,有时会产生使初学者莫名其妙的结果。
五、操作符重载,典型的高级应用,初学者可能根本用不着,这个东东会让他们觉得C++很难,门槛高,看不懂…………。
六、继承,以及虚函数,典型的模仿四不象,这种狗屁东西除了看起来深奥,实用价值很低………………。我怎么可能把某个类的类型的指针去指向另一个不同类型但是是继承关系的类,来实现什么动态联编,晕…………
Top
8 楼zez(思恩 闭关练功ing...)回复于 2006-03-07 10:03:14 得分 0
不知道楼主想干什么
自己随便找两本最最基本的 c和c++ 的书,一本看上 十页 就够了...Top
9 楼ox_thedarkness()回复于 2006-03-07 10:15:39 得分 0
.... chewl(颇竹) ( ) 我觉得引用是C++唯一好用而又不增加复杂性的特性阿
而且你说的前五条都是比较好的而不太复杂的冬冬, 而不是增加难度的特性....Top
10 楼steedhorse(晨星)回复于 2006-03-07 10:28:01 得分 0
我怎么可能把某个类的类型的指针去指向另一个不同类型但是是继承关系的类,来实现什么动态联编,晕…………
////////////////////////////////////
怎么不可能?这种例子到处都是。Top
11 楼robertcarlos(还我信誉分)回复于 2006-03-07 11:30:42 得分 0
chewl(颇竹) ( ) 信誉:100
言语太偏激了吧,你说的这些中有不少是C++的特点啊
反对你的观点Top
12 楼fullmoon525(满月)回复于 2006-03-07 13:20:10 得分 0
呵呵,我觉得好坏都是个人使用的感受
主要是讨论一下,他们的区别是什么东西:)
Top
13 楼steedhorse(晨星)回复于 2006-03-07 13:26:34 得分 0
但C和C++本来就是两种东西的,讨论区别根本没啥意思。
讨论它们有究竟还存在多少联系或许还更有意义一些。Top




