导语:
大家求职简历上肯定会写精通C和C++语言之类的词语,所以,这个问题被问到的概率也是相当高的,请大家提前准备下该怎么表达!
解题思路:
面试中如果要和面试官谈C和C++的区别这样的问题,那么尽量先从轮廓上谈一些他们大方向上的差别,然后等着面试官再和你仔细的询问某个知识点的细节,切忌一上来就喋喋不休,没个逻辑,想到哪里说到哪里,这样不行,因为它们之间的区别点还是非常多的!
针对这个问题,你可以先思考一下,然后给出诸如下面的内容:
C是面向过程的语言,而C++是面向对象的语言,因此C++语言中有类和对象以及继承多态这样的OOP语言必备的内容,此外C++支持模板,运算符重载,异常处理机制,以及一个非常强大的C++标准模板库STL,另外一个Boost库现在也归属C++标准库,提供了很多强大的功能。
C只能写面向过程的代码,而C++既可以写面向过程的代码,也可以实现面向对象的代码;既然C++是面向对象的OOP语言,因此它还有非常强大的设计模式,比如单例,工厂,观察者模式等等,这些在C语言当中都是不支持的。
C和C++一个典型的区别就在动态内存管理上了,C语言通过malloc和free来进行堆内存的分配和释放,而C++是通过new和delete来管理堆内存的(至于new/malloc有什么区别,delete/free有什么区别,你等面试官来继续深入问你,先从大方向上罗列区别,让他感受一下你只是的全面性^^)
另外强制类型转换上也不一样,C的强制类型转换使用()小括号里面加类型进行类型强转的,而C++有四种自己的类型强转方式,分别是const_cast,static_cast,reinterpret_cast和dynamic_cast(一样,等面试官来深入问你,前提是这块你准备好了,如果没有理解他们的使用场景和区别,那么这一点你还是不要说了!)
C和C++的输