面试中常被问到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++区别的主要内容,如果未能解决你的问题,请参考以下文章