📜  C与C++

📅  最后修改于: 2020-10-16 05:57:19             🧑  作者: Mango

C与C++

什么是C?

C是一种面向结构或过程的编程语言,它与机器无关,并且广泛用于各种应用程序中。

C是一种基本的编程语言,可用于从操作系统(例如Windows)开发到复杂的程序(例如Oracle数据库,Git, Python解释器等)。 C编程语言可以称为上帝的编程语言,因为它构成了其他编程语言的基础。如果我们知道C语言,那么我们可以轻松学习其他编程语言。 C语言由贝尔实验室的杰出计算机科学家Dennis Ritchie开发。它包含一些其他功能,使其与其他编程语言不同。

什么是C++?

C++是由Bjarne Stroustrup在1980年左右在贝尔实验室开发的一种特殊用途的编程语言。C++语言与C语言非常相似,并且与C如此兼容,因此它可以运行99%的C程序而无需更改任何代码源。 C++是一种面向对象的编程语言,因此它比C语言更安全,结构更好。

让我们了解C和C++之间的区别。

以下是C和C++之间的区别:

  • 定义C是一种结构化编程语言,它不支持类和对象,而C++是一种支持类和对象概念的面向对象的编程语言。
  • 编程语言的类型C支持逐行检查代码的结构化编程语言,而C++是支持类和对象概念的面向对象编程语言。
  • 语言开发人员Dennis Ritchie在贝尔实验室开发了C语言,而Bjarne Stroustrup在1980年左右在贝尔实验室开发了C++语言。
  • 子集C++是C编程语言的超集。 C++可以运行99%的C代码,但C语言不能运行C++代码。
  • 方法类型C遵循自上而下的方法,而C++遵循自下而上的方法。自上而下的方法将主要模块分解为任务。这些任务分为子任务,依此类推。自下而上的方法首先开发低层模块,然后再开发下层模块。
  • 安全性在C语言中,由于数据不支持封装和信息隐藏,因此外部人可以轻松地处理数据,而C++是一种非常安全的语言,即,由于支持封装和数据隐藏,因此没有外部人可以操纵其数据。在C语言中,函数和数据是自由实体,在C++语言中,所有函数和数据都以对象形式封装。
  • 函数重载函数重载是一项功能,可让您使用同一个名称但具有不同参数的多个函数。 C不支持函数重载,而C++支持函数重载。
  • 函数覆盖函数覆盖是为功能提供特定实现的功能,该函数已在基类中定义。 C不支持函数覆盖,而C++支持函数覆盖。
  • 参考变量C不支持参考变量,而C++支持参考变量。
  • 关键字C包含32个关键字,而C++支持52个关键字。
  • 命名空间功能命名空间是一种功能,它以某些特定名称将诸如类,对象和函数之类的实体分组。 C不包含名称空间功能,而C++支持避免名称冲突的名称空间功能。
  • 异常处理C不直接提供对异常处理的支持。它需要使用支持异常处理的功能。 C++通过使用try-catch块直接提供了对异常处理的支持。
  • 输入/输出函数在C中,scanf和printf函数分别用于输入和输出操作,而在C++中,cin和cout分别用于输入和输出操作。
  • 内存分配和取消分配C支持calloc()和malloc()函数进行内存分配,并支持free()函数进行内存分配。 C++支持用于内存分配的new运算符和用于内存取消分配的delete运算符。
  • 继承继承是一项允许子类重用父类属性的功能。 C语言不支持继承,而C++支持继承。
  • 头文件C程序使用头文件,而C++程序使用头文件。

让我们以表格形式总结以上差异。

No. C C++
1) C follows the procedural style programming. C++ is multi-paradigm. It supports both procedural and object oriented.
2) Data is less secured in C. In C++, you can use modifiers for class members to make it inaccessible for outside users.
3) C follows the top-down approach. C++ follows the bottom-up approach.
4) C does not support function overloading. C++ supports function overloading.
5) In C, you can’t use functions in structure. In C++, you can use functions in structure.
6) C does not support reference variables. C++ supports reference variables.
7) In C, scanf() and printf() are mainly used for input/output. C++ mainly uses stream cin and cout to perform input and output operations.
8) Operator overloading is not possible in C. Operator overloading is possible in C++.
9) C programs are divided into procedures and modules C++ programs are divided into functions and classes.
10) C does not provide the feature of namespace. C++ supports the feature of namespace.
11) Exception handling is not easy in C. It has to perform using other functions. C++ provides exception handling using Try and Catch block.
12) C does not support the inheritance. C++ supports inheritance.