c和c++区别

如题所述

第1个回答  2023-07-26

 c与c++的区别在于它们的运用领域不同。

1、C++是面向对象语言,C是面向过程语言。

2、结构:C以结构体struct为核心结构;C++以类class为核心结构。

3、多态:C可以以宏定义的方式“自定义”部分地支持多态;C++自身提供多态,并以模板templates支持编译期多态,以虚函数virtual function支持运行期多态。

4、头文件的调用:C++用< >代替” “代表系统头文件;且复用C的头文件时,去掉”.h”在开头加上”C”。

5、输入输出:鉴于C++中以对象作为核心,输入和输出都是在流对象上的操作。

6、封装:C中的封装由于struct的特性全部为公有封装,C++中的封装由于class的特性更加完善、安全。

7、常见风格:C中常用宏定义来进行文本替换,不具有类型安全性;C++中常建议采用常量定义,具有类型安全性。

8、效率:常见的说法是同等目的C通常比C++更富有效率(这其实有一定的误解,主要在于C++代码更难于优化且少有人使用编译期求值的特性)。

9、常用语言/库特性:

a、数组:C中采用内建数组,C++中建议采用vector。相比之下vector的大小可以动态增长,且使用一些技巧后增长并不低效,且成员函数丰富。

b、字符串 C中采用C风格的string(实则为字符串数组),C++中建议采用string,对比与上一条类似。

c、内存分配:C中使用malloc与free,它们是是C标准库函数,C++中建议使用new/delete代替前者,他们说是C++的运算符(这是笔试面试常考点)以C++中的new为例,new可分为operator new(new 操作)、new operator(new 操作符)和placement new(定位 new)。

其中operator new执行和malloc相同的任务,即分配内存,但对构造函数一无所知;而 new operator则调用operator new,分配内存后再调用对象构造函数进行对象的构造。其中operator new是可以重载的。

placement new,就是operator new的一个重载版本,允许你在一个已经分配好的内存中构造一个新的对象。

d、指针:C中通常使用的是原生指针(raw pointer),由于常出现程序员在申请后忘记释放造成资源泄漏的问题,在C++98中加入了“第一代”基于引用计数的智能指针auto_ptr,由于初代的各种问题(主要是无法解决循环指针),在03标准也就是TR1中引入了shared_ptr,weak_ptr和unique_ptr这三个功能各异的智能指针,并与11标准中正式确定,较好的解决了上述问题。



c++和c语言的区别是什么?
c++与c语言的区别是对象不同、函数库不同、结构不同、设计思想不同。1、对象不同C语言是面向过程的,而C++是面向对象的。2、函数库不同C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对W...

C语言和C++有什么区别?
一、主体不同 1、C语言:是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。2、C++:是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计。二、优势不同 1、C语言:能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器...

C语言和C++的不同之处和相同之处
C语言和C++区别为:面向体不同、设计不同、文件组织不同。一、面向体不同 1、C语言:C语言是一门面向过程的计算机编程语言 2、C++:C++是一门面向对象的计算机编程语言。二、设计不同 1、C语言:C语言进行过程化、抽象化的通用程序设计。2、C++:C++既可以进行C语言的过程化程序设计,又可以进行以...

c语言和c++的区别
一、基础区别 C语言是一种过程式编程语言,注重过程和流程控制,而C++是面向对象的语言,更注重事物的属性和行为。这种基础差异导致了两者在编程思想、语法特性和应用领域的不同。二、语法特性 1. 面向对象特性:C++支持面向对象编程的三大特性:封装、继承和多态,而C语言则不具备这些特性。在C++中,可以...

c语言和c++语言有什么区别
C语言和C++语言的主要区别 一、基本区别 C++是C语言的超集,这意味着C++包含了C语言的所有特性,同时添加了更多高级功能和抽象概念。简单来说,所有有效的C程序在C++环境中也是有效的,但C++更具扩展性和灵活性。二、详细解释 1. 语言特性的扩展:C++相较于C语言增加了更多的特性,例如类、对象、继承...

c c++区别
C和C++在多个方面存在显著的区别,具体如下:一、结构上的区别 1. C语言:C语言的结构体仅包含成员变量,不具备成员函数。2. C++:C++的结构体中可以包含自有成员变量和成员函数。二、设计上的区别 1. C语言:C语言主要专注于过程化、抽象化的通用程序设计。2. C++:C++不仅支持C语言的过程化程序...

c语言和c++语言的区别是什么?
一、基本区别 C++是C语言的扩展和增强版,它增加了面向对象编程的特性,如类、封装、继承和多态等。而C语言则是一种通用的、过程式的编程语言。二、详细解释 1.语言特性:C语言:以过程式编程为主,注重数据和程序的流程。它提供了基本的编程结构和功能,如函数、循环、条件语句等。C++语言:除了包含...

c语言和c++的区别和联系
C语言和C++语言的区别和联系如下:一、C语言和C++语言的区别 1、面向对象编程:C语言不支持面向对象编程,而C++语言支持面向对象编程。面向对象编程是一种编程范型,它将数据和操作封装在一起,形成对象。C++语言通过类、继承和多态等机制实现面向对象编程。2、异常处理:C语言不支持异常处理,而C++语言...

c语言与c++的区别?
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出zhi流。区别如下:1、应用场合不同:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;正是因为...

c语言和c++语言的区别是什么?
C语言和C++语言的区别 一、语言特性的差异 1. 继承与扩展性: C++ 是 C 语言的扩展,继承了 C 语言的大部分特性,并增加了面向对象编程的特性,如类、封装和继承等。这使得 C++ 更适合于大型复杂项目的开发。而 C 语言主要是一种过程式语言,不具备面向对象的能力。2. 类型安全性: C++ 具有更...

相似回答
大家正在搜