C++面试总结(一)--c与c++不同
C++面试总结(一)--C与C++不同
c++特点
-
C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。
-
C++有三大特性(1)封装。(2)继承。(3)多态;
-
C++语言编写出的程序结构清晰、易于扩充,程序可读性好。
-
C++生成的代码质量高,效率高,
-
C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等;
-
C++可复用性高,C++引入了模板的概念,标准模板库STL(Standard Template Library)。
1、说说C语言和C++的区别
\1. C语言是C++的子集,C++可以很好兼容C语言。但是C++又有很多新特性,如引用、智能指针、
auto变量等。
\2. C++是面对对象的编程语言;C语言是面对过程的编程语言。
\3. C语言有一些不安全的语言特性,如指针使用的潜在危险、强制转换的不确定性、内存泄露等。而
C++对此增加了不少新特性来改善安全性,如const常量、引用、cast转换、智能指针、try—catch
等等;
\4. C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL。
C++的STL库相对于C语言的函数库更灵活、更通用。
2、说说 C++中 struct 和 class 的区别
\1. struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;
\2. struct 中默认的访问控制权限是 public 的,而 class 中默认的访问控制权限是 private 的。
\3. 在继承关系中,struct 默认是公有继承,而 class 是私有继承;
\4. class 关键字可以用于定义模板参数,就像 typename,而 struct 不能用于定义模板参数,
3、include头文件的顺序以及双引号""和尖括号<>的区别
\1. 区别:
(1)尖括号<>的头文件是系统文件,双引号""的头文件是自定义文件。
(2)编译器预处理阶段查找头文件的路径不一样。
\2. 查找路径:
(1)使用尖括号<>的头文件的查找路径:编译器设置的头文件路径-->系统变量。
(2)使用双引号""的头文件的查找路径:当前头文件目录-->编译器设置的头文件路径-->系统变
量。
4、说说C++结构体和C结构体的区别
区别:
(1)C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。
(2)C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。
(3)C语言的结构体是不可以继承的,C++的结构体可继承。
(4)C 中使用结构体需要加上 struct 关键字,而 C++ 中可以省略 struct 关键字直接使用。
\1. C++ 中的 struct 是对 C 中的 struct 进行了扩充,它们在声明时的区别如下:
5、导入C函数的关键字是什么,C++编译时和C有什么不同?
\1. 关键字:在C++中,导入C函数的关键字是extern,表达形式为extern “C”, extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。
\2. 编译区别:由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南