C++对C语言的扩展与封装的区别

新知榜官方账号

2023-09-20 02:56:35

一、C++对C语言的扩展

1.类型增强

  • 类型检查更严格,如无法将const类型的指针赋值给非const类型的指针;
  • C++中有表示逻辑真假的布尔类型bool,可取值为true和false;
  • 真正的枚举,C++中的枚举变量只能用被枚举出来的元素初始化,C语言中枚举的本质是整型,枚举变量可以用任意整型赋值;
  • 表达式的值可以被赋值,如(a=b)=10;

2.输入cin与输出cout流对象

cin是istream类对象,cout是ostream类对象。

3.函数重载

重载底层实现:C++利用namemangling(倾轧)技术来改变函数名,以区分同名函数。

4.操作符重载

如<<、&、*,C++认为一切操作符都是函数,只有部分操作符不可重载。

5.C++支持函数的默认参数

6.引用Reference

变量名本身是一段内存的引用,即别名alias,而引用是为已有变量再起一个别名。

7.new/delete运算符

C语言中提供了malloc和free两个系统函数,完成对堆内存的申请和释放;而C++则提供了两关键字new和delete(也包括new[]和[]delete),不需要头文件。

8.内联函数inlinefunction

多用于代码行数较少的函数

9.类型强转typecast

  • 静态类型转换,static_cast;
  • 重解释类型转换,reinterpret_cast;
  • 脱常类型转换,const_cast;
  • 动态类型转换,dynamic_cast。

10.命名空间namespacescope

命名空间为了大型项目开发引入的一种避免命名冲突的一种机制。

二、关于封装

C语言风格封装是使用结构体类型将多个类型打包成一体,形成新的类型。新类型并不包含对数据类的操作,所有的操作都是通过函数的形式。

C++认为C语言的封装不彻底,一是数据与行为分离,二是没有权限控制,三是封装应当实现对内数据开放、逻辑抽象,对外提供接口、屏蔽数据。

class封装的本质是将数据与行为绑定在一起然后通过对象来完成操作。

三、C++与C语言的区别

1.C语言是面向过程的;C++是面向对象的。

C语言程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出。C++首要考虑的是如何构造一个对象模型,让这个对象能够契合与之对应的问题域,通过获取对象的状态信息得到输出或实现过程事物控制。

2.C语言的结构概念只有成员变量,没有成员方法;C++结构中既有成员变量又有成员函数,且数据成员有权限控制。

3.头文件

C语言中所有的头文件都带后缀.h(比如stdio.h)​;C++中有系统提供的头文件不带后缀.h,用户自己编制的头文件可以有后缀

最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!

本页网址:https://www.xinzhibang.net/article_detail-12523.html

寻求报道,请 点击这里 微信扫码咨询

相关工具

相关文章

相关快讯