面试中常被问到c/c++区别

Posted AllenSquirrel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试中常被问到c/c++区别相关的知识,希望对你有一定的参考价值。

c/c++区别

  • c是面向过程的语言,c++是面向对象的语言,现如今都采用面向对象(oop)编程技术,为什么oop语言如此热门呢?

比如像c++语言中,有封装(类及对象),继承和多态机制,此外c++还支持模板,运算符重载,异常处理机制.同时借助STL模板库,实现更为强大的功能

  • c由于面向过程的语言,程序设计也只是简单的面向过程,实现串行,而c++x面向对象的编程语言,可以有自己独特的设计模式,比如经典的单例设计模式

  • 在动态内存管理上,二者也存在一定区别,c通过malloc和free完成,且二者都是c库提供的函数,c++通过new和delet完成,二者都是c++所提供的运算符

  • 在强制类型转换方面,c的强制类型转换使用()进行强转,c++有自己的四种类型转换方式(static_cast,const_cast,reinterpref_cast,dynamic_cast)

  • c/c++在输入输出也有区别,c采用scanf/printf都是youc库提供的函数,而c++采用的cin/cout都是ostream/instream的对象

  • c++支持指针,还支持更为安全的引用,不过在汇编代码中,指针和引用二者作用一致,同时c++还支持带有默认值的函数,函数重载,内联函数

  • c++中struct关键字不仅可以定义结构体,也可以定义类,对此,c++比c多一个类,即多了一个类的作用域,同时c++还支持namespac命名空间,程序员可以自定义新的名字空间作用域,避免全局名字的冲突

  • 由于c++是面向对象的语言,支持类对象,类与类之间的组合,继承,多态等oop设计方式,有很多设计方式可以直接使用(单例模式等),因此在大型软件设计中,都会采用oop技术,可以更好的进行模块化设计,实现高内聚,低耦合

以上是关于面试中常被问到c/c++区别的主要内容,如果未能解决你的问题,请参考以下文章

面试中常被问到new/delete和malloc/free区别

面试中常被问到(12)进程与线程的区别

面试中常被问到(25)map和pair区别

Java面试中常被问到的几大技术难题

总结!Java面试中常被问到的几大技术难题

干货 | Java面试中常被问到的几大技术难题