程序员面试问题(三)

来源:互联网 发布:matlab合并三个矩阵 编辑:程序博客网 时间:2024/05/20 17:24

C语言部分(2)

4.      c 与 c++ 的区别:(个人见解,请批评指正)

虽然学过这两种语言,但是想总结这个真是不容易,暂时想到这些,就想别人说的,c++没有实际用上五六年是不会深入了解的,希望各位大牛能帮助我完善这篇博客......

a)      从程序语言的角度,c语言是面向过程的语言,注重算法与数据结构,进行模块化编程;C++ 在c语言的基础上,增加了面向对象成分,c++程序应当先考虑如何构造对象模型

b)      从语法的角度,c++是c语言的超集,c++支持c语言的所有语法,包括函数,宏,结构体,联合体,类型定义等等,c++ 对语法进行了扩充,增加了类的概念,以及类的继承,函数重载,运算符重载,多态语法,泛型,类成员访问限制,同时对于结构体,c++支持成员函数,布尔类型从c语言的_Bool改成了bool; 对流的控制进行了封装,增加了<< 以及>> 运算符,引入了名字空间的概念,在新的标准中,还引入了智能指针,c++的许多库也为c++提供了许多新的特性,如stl库中的各种数据结构的封装:向量,链表,队列……

c)      c语言源文件后缀一般为c,c++一般为cpp

d)      c++有更严格的类型检查,比如不能直接将void * 转化为其他类型

e)      c 与 c++ const意义有所变化,首先c++中能修饰成员函数,

再者,c默认const是外部连接,而const是内部连接(《think in c++》)

0 0