我来自计算机学院,从大一开始就系统地学习编程语言,包括C,VB,C#,JAVA,C++,COBOL,汇编,其中C++是我最喜欢的,它以强大的编译机制、灵活的编程手法、高速的运行效率征服了我.由于我先学的是C,最开始用C++时,因为不知其所以然,涉及多态的程序在继承层次较多的时候经常就糊涂,但是当明白C++的实现之后,发现其实本质上c++和C是一样的,函数还是那个函数,对象还是那个对象,只不过C++的多态实际上就是编译器在编译的时候替你做好了函数调用的选择工作,运行的时候会动态的调整类中的虚表指针,从而实现多态。从此C++在眼里才显得不再神秘,明白其中的道理,写程序的时候心中才有一点谱。因为无论是类对象,方法,或者变量,函数指针什么的,归根到底都是二进制的数据。C++类对象里的虚表维护的其实就是函数地址(当然也还有其他的东西),和你用C的函数指针是一样的效果。经常遇到有拿C和C++相比的问题,诚然C要比C++的效率要高一些,系统开销要小一些。撇开软件设计的水平来说,C++在管理类的继承和虚表指针上有额外的开销,尤其是含有虚函数的类继承层次过多的时候对效率影响比较大。但是在大多数情况下对实时性要求不高的场合,C++的程序要比C程序容易维护的多。例如内存控制,C++有析构函数,而在C里面要程序员去精确的控制在什么地方释放内存,一旦错了,程序也许某个时候就突然间core down了。但反过来在做C程序的过程中,你可以精确的控制内存,使用C的底层函数,你可以访问程序的任何内存地址,对指针的灵活使用更让人从中感受到一种愉悦的快感。
在C++的学习过程中,有3本书对我的影响巨大,可以说这3本书给了我3次震撼。第一本:《C++设计与演化》这本书,在学习C++过程中这本书对我的帮助是最大的,这本书让我明白了C++的设计理念和各种语言设施所代表的实现语义,既各种纷繁的C++语言特性都是为了实现某种功能并且在不违反C++设计哲学基础上建立起来的。这样的对于C++的宏观基础,让我在以后的学习日子里受益非浅;第二本:《C++ PRIMER》,这本书对于入gate后完全的学习和理解C++效果十分明显,从书的一开始就直接进入C++的主题,前面五章都用类设计一个数据结构,让读者完全明白了各种用户定义类型所代表的抽象能力,然后直接进入第六章标准库中的容器类,这样的设计让读者十分清楚的建立容器和类这两个C++中十分重要的概念,之后的学习自然是非常富有满足感,自己建立起了对C++的完整的基本认识;第三本:《C++沉思录》,这本书最大的特点是非常直接的把C++语言的核心暴露出来-----三种抽象模型和极其语言设施本身对这三种抽象模型的支持,而它给我的更深层思考是什么才是运用C++最合理的方式.后来,自己慢慢的用C++实现了一些小程序,有的是书本上的,有的是自己想的,写程序和调试的过程给我的感觉就是烦恼和满足的交替过程也许就是这样的反复过程才是程序员追求的。
最后我引用一个前辈的话作为结尾--C++就是我的信仰。