C++编译语言可以使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处,结束本次循环,接着判断是否执行下一次循环,所以由c++编译器产生的代码一定比vb的编译代码效率更高。
一个好的程序与一个伟大的程序的区别就是其是否具有良好的错误处理支持。实际上,如果在实现中首先进行错误处理,而不是在最后才进行,那么整个程序的开发和测试过程会更加完美。但是,错误处理只能与语言所支持的内容相一致。
vbscript具有基本的错误处理支持功能。在默认情况下,不能捕获vbscript中的错误。每次怀疑产生错误时,要调用on error resume next功能,并检查error对象。而C++中的错误处理比较好,这是因为有“异常处理”,本章的后面部分将详细介绍。
最小的依赖性
正如上面所说,C++编译语言,即C++代码在执行之前已转换为机器码。只要此代码不依赖于外部的动态链接库(dll),C++就可以在不需要安装额外程序的情况下移动到运行同样操作系统的其他机器和微处理器上,而移动java程序时需要先安装java运行期库。
利用现有的代码
由于c和C++已经存在许多年了,现在有许多可利用的代码,你的服务器组件可以使用现有的c/C++代码或库。例如统计库和到老系统的c接口。
最大化com特征
com与C++很接近,实际上, don box(com的权威)在他的《essential com》一书的第一章写道:“com就是更好的C++”。他说明了com规范是如何从C++语言规律中产生出来的。通过理解C++,会对com有更深的理解。某些语言不能利用所有的com特征,而在C++中,几乎可以使用所有的com特征。
知道什么时候使用C++编译语言重要的,同样,知道什么时候不使用C++也是重要的。想像一下那些长期维护代码的人,如果他们中没有一些C++程序员支持C++,那么开发者们不得不把眼光转向另外一些他们熟悉的语言。
改变C++组件时,为了看到这些改变的结果,必须重新编译该组件代码,这会花费很长的开发时间。C++不能像asp页面代码那样,只使用记事本,改变代码的一行,重新装载而得到结果。因此,如果某些工作需要经常变化(如原型),不要用C++。
在C++中,对一些致命的错误不能获得更多的保护,写一个使组件崩溃的代码是很容易的。这是为了提供快速代码而付出的代价, C++不会停下来去检查代码是否按设计运行能否使程序不崩溃依赖于开发者的技巧。如果在这方面花的时间较少或刚刚学习C++,最好不要使用C++。
等到已经意识到C++中所有容易犯的错误,而且在检测组件之前花了许多时间,才可以使用C++,如果想很快、很容易地建立一个组件,而且也不考虑该组件的执行速度,那么使用vb吧!学习新东西的最好方法就是利用现有的技巧。对于asp开发者来说,已经学习了C++所要求的许多技巧,特别是,jscript语法和activex或com的面向对象编程的概念。
1. jscript
大部分asp开发者都用jscript在浏览器上使用dhtml。jscript的语法与c非常相似,所以,如果懂得jscript,那么就懂得基本的c语法。当然,只是C++语法的子集。C++有许多额外的语法来支持面向对象编程,这就是我们下一步要做的。
2. 面向对象编程
如果你在vb中使用过类(class),则对任何com对象和文档对象模型(document objectmodel,dom )都应熟悉,因为已经有了面向对象编程(oop)的概念。在前面已经说过, c和C++的区别是C++支持面向C++编译语言。