C与C++的真正区别,就是面向对象以及类概念的引进。正是因为这两个概念的引进,使得编程变得简单,编程的逻辑变得非常清晰。
C++引进了类class,使得大型软件开发,可以做到分工协作,组装,调试容易,bug容易厘清。用C编程很麻烦,首先要用著名的project把要编绎的C,H文件码一起,一个也不能遗漏。组织起来很麻烦。
C++,用类class封装。如,一个大型应用程序,其中有文件及字符编辑界面,可以用一个CFileEditClass类,图形描画CGraphDrawingClass,数据传输类CCommunicationClass,语法分析CExplainClass,轨迹计算类CContuarClass等等。
每个类是独立的。如CFileEditClass类,可以实现应用程序界面中的文件打开、保存、删除、传输、字符编辑等功能。可以安排一个人做。
每个类也是相互可引用的。如在图形描画中,可引用CFileEditClass中的文件打开成员,也可用轨迹计算类CContuarClass中的轨迹处理成员,生成描画数据。
C++除了可用C的libaray库函数处,也可用MFC的标准类库。MFC的标准类库容丰富,也很好用,几乎涉及windows、通讯、网络IO内存操作等所有编程要用的函数。
在出现问题时,我们很容易检查出是那个类出了bug,有针对性地进行检查。
C++的面向对象编程,逻辑非常清楚。保证了多线程之间消息的传输。面向对象的类封装、继承,是C++一大革命性的创举。
比如,我们要做六个页面,他们有共同的颜色色调,相同的大小,字体、字号一致等等共性,在C语言开发的,写一个公共的函数,来初始化每一个页面。
但对于C++,有一个更好的方法,那就是构建一个公共的父类,如CommonPropertySheet,在这个类中,除了以上的共有属性外,还可增加消息的传输,异常的处理等,用来解决各PropertySheet之间,以及与windows其它线程之间的消息传送,更好地实现多线程之间的数据协同。
C++还有更多的优点,如在字符串处理、通信处理、图像处理等上,更精确。我是1998年开始从C转到C++的。我觉得,不论是底层开发,还是windows的应用程序开发,只要环境允许,尽量使用C++类进行软件开发,一定会受益匪浅。