为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

解析C++和C的区别

2012-09-03 3页 pdf 98KB 10阅读

用户头像

is_586861

暂无简介

举报
解析C++和C的区别 解析 C++和 C的区别 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。在 很大程度上,标准C++是标准 C的超集。实际上,所有 C程序也是 C++程序,然而,两者之 间有少量区别。下面简要介绍一下最重要的区别。 在C++中,民,局部变量可以在一个程序块内在任何地方声明,在 C中,局部变量必须 在程序块的开始部分,即在所有"操作"语句之前声明,请注意,C99标准中取消了这种限制。 在C 中,按如下方式声明的函数没有对函数变元进行任何说明; 学习各种外挂制作技术,马上去百度搜索 "...
解析C++和C的区别
解析 C++和 C的区别 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。在 很大程度上,C++是标准 C的超集。实际上,所有 C程序也是 C++程序,然而,两者之 间有少量区别。下面简要介绍一下最重要的区别。 在C++中,民,局部变量可以在一个程序块内在任何地方声明,在 C中,局部变量必须 在程序块的开始部分,即在所有"操作"语句之前声明,请注意,C99标准中取消了这种限制。 在C 中,按如下方式声明的函数没有对函数变元进行任何说明; 学习各种外挂制作技术,马上去百度搜索 """"魔鬼作坊"""" 点击第 一个站进入、快速成为做挂达人。 int func(); 也就是说,如果没有在函数后面的括孤内指定任何变元,这在C 中就意味着对函数变元 未做任何声明,该函数可能有变元,也可能没有变元,然而,在C++中,这样的函数声明意 味着该函数没有变元,也就是说,在C++中,下面这两个函数声明具有同样的作用: int func(); int func(void); 在C++中,变元列表中的 void是任选的。许多 C++程序员使用它们是为了表明函数没有 任何变元的,以便于他人理解程序。但是,从技术上说,void不是必须的。 在C++中,所有函数均必须被设计成原型,但这在 C中只是一种选择。编程经验表明, 在程序中也应该给函数采用原型设计方法。在C与 C++之间还存在一个重要而又细微的差别, 即字符常数在C 中被自动作为整形来处理,但在C++中则不然。 在C 中,多次声明一个全局变量虽然不可取,但不算错。在C++中,多次声明同一个全 局变量会引发错误。 在C 中,一个标识符可以至少31个有效的组成字符。 在C++中,一个标识符的所有组成字符均是有效的。可是,从实用角度看,过长的标识 符没有太大的用处,不仅不便于记忆,而且还会增加出现打字错误的可能性。 在C 中,在程序内部调用main()函数的情形不常见,但这种做法是容许的,在 C++ 中,这种做法是不容许的。 在C 中,无法获得register 型的地址,在C++中则可以获得这种地址。 在C 中,如果类型声明语句中没有指定类型名,该类型被假定成 int,这种隐式转型在 C99与 C++中是不允许的。 #include using namespace std; 为什么没有。h后缀名? 名称iostream 没有扩展名。h,原因是是标准 C++所定义的新式头部文件之一,新式 C++ 头部文件不再使用。h扩展名。 第二行告诉编译程序使用std 名称空间,名称空间是最近才添加到C++中,一个名称空 间建立一个声明范围,在该范围内可以放置各种程序元素。名称空间用来帮助组织大型程序 的结构。这条 using语句编译程序,程序员需要使用 std名称空间,这是整个标准 C++ 库声明所使用的名称空间。通过使用 sdt名称空间,程序可以简化对标准库的访问。普通 C 程序仅使用C 子集,不需要名称空间语句,因为C 的库函数在默认的全局名称空间中是可使 用的。 类与结构体的区别:类与结构体是相互关联的 结构是C 的一部分,C++从 C中继承了结构,在语法上,类与结构十分相似,在关系上, 这两者也很接近,在C++中,结构的作用被拓宽了,进而使结构成为了类的一种替代方法。 实际上,类与结构的惟一区别在于:在默认状态下,结构的所有成员均是公有的,而类的所 有成员是私有的。除此之外,类与结构是等价的,也就是说,一个结构定义了一个类的类型。 C++同时包含这两个等价的关键字struct 与 class 基于3个方面的原因。第一,加强结 构的能力。在C 中,结构提供了一种数据分组方法,因而让结构包含成员函数是一个小小的 改进。第二,由于类与结构是相互关联的,所有现有C 代码到C++的移植变得更容易。第三, 由于类与结构的等价性,提供两个不同的关键字可以使类定义自由发展,为了保持C++与 C 的兼容性,结构定义必须始终受它的C 定义的结束。 即使在有些地方可以使用结构来代替类,但尽量不要这么做,为了清楚起见,该用类的 地方就用class 关键字,该用C 结构的地方就用struct 关键字。 类与联合是相互关联的 联合也可以用来定义类。在C++中,联合包含成员函数,变量以及构造与析构函数。C++ 联合保留了C 联合的全部特征,其中最重要的特征是所有数据元素共享内存的相同地址。与 结构类似,联合的成员在默认状态下也是公有的,并且完全兼容于C。与结构一样,C++中 的联合声明定义了一种特殊的类,进而意味着保持了类的封装原则。 C++的联合有几个必须遵守的使用限制。第一,联合不能继承其他任何类型的类。第二, 联合不能是基类,不能包含有虚函数成员。静态变量不能是联合的成员。联合不能使用引用 成员,而且不能有任何作为成员的重载赋值运算符的对象。第三,如果一个对象包含明确的 构造或析构函数,该对象不能成为联合的成员。 C++有一个叫做匿名联合的特殊联合。匿名联合没有类型名,也不声明任何变量,只是 告诉编译程序它的成员变量共享一个内存地址。但是,变量本身无需要使用常规的点运算符 语法即可直接引用。 上述联合的使用限制也适用于匿名联合,但下面这两个限制除外,第一,匿名联合所包 含的元素只能是数据,不能包含成员函数,也不能包含私有或受保护元素;第二,全局匿名 联合必须声明成静态的。 通过本文的介绍,我们可以了解到,C是 C++的基础,C++语言和C 语言在很多方面是兼 容的。因此,掌握了 C语言,再进一步学习 C++就能以一种熟悉的语法来学习面向对象的语 言,从而达到事半功倍的目的。
/
本文档为【解析C++和C的区别】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索