引言:
C++中命名空间使用
随着程序规模的扩大,命名冲突的问题越来越严重,在同一个程序甚至是一个程序的一个模块都会出现同名的情况,特别是那些多人开发的程序中这种情况更严重,为了解决这个问题,各种语言都有相应的措施比如:java中使用了”包”的概念,而C++使用了...
摘要:javascript实现类似title alt功能并且可以显示图片。
<html><head> <script language="javascript">var tiptimer;function locateobject(n, d) { //v3.0var p,i,x; if(!d) d=document; if((p=n.inde......
摘要:
.net中的反射使用入门
msdn:ms-help://ms.vscc.2003/ms.msdnqtr.2003feb.2052/cpguide/html/cpcondiscoveringtypeinformationatruntime.htm提纲:1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创......
C++中命名空间使用
c++中命名空间使用
随着程序规模的扩大,命名冲突的问题越来越严重,在同一个程序甚至是一个程序的一个模块都会出现同名的情况,特别是那些多人开发的程序中这种情况更严重,为了解决这个问题,各种语言都有相应的措施比如:java中使用了”包”的概念,而c++使用了”命名空间”,而由于这儿讨论的对象只是针对c++的标准模板库,故只讨论命名空间,而java中的包的概念与命名空间类似,如果有兴趣可以参考java的书籍.标准库中的所有对象都在名为std的空间内,如果你要使用的话必须引入该空间,通过一下语句即可引入:
using namespace std;
以后的代码即可随意使用该空间的函数,算法等,就好像在程序中自定义的函数一样,很多介绍使用c++标准模板库的书籍的例子程序大都使用这种方式,的确我承认这种方式很简单,但却有问题存在,请思考下面的情况:
一个稍微大点的程序往往会包含许多函数,这些函数的命名与参数类型很可能与标准库中的函数同名,如果出现这种情况的话,你程序中的函数就会屏蔽标准函数库中的函数,但你却认为是在使用标准库中的函数,于是忘了使用std::作用域分辨符,这样的话你程序会编译通过,但会出现了潜在的错误.举个例子如下:
假设标准库中有一个函数原型为bool isok(int x)的函数,它的作用是判断x是否为素数,如果是则返回真否则返回假,而你程序中也定义了一个这样原型的函数,但它的作用却是判断该数的范围是否在[0~100],如果是就返回真,否则返回假.现在在你的程序的很多地方都需要要使用标准库中的isok函数来判断是否为素数,但你可能会由于“我已经使用using namespace std语句引入了std空间”的想法而直接使用了isok函数,你本来的意图是要判断是否为素数,但现在却成了判断数的范围是否为[0~100],这样就与你的意图不符合而造成了潜在的错误,遗憾的是该程序会通过编译而使你的程序出现这样潜在的错误....
下一页 摘要:1。调用netmeeting 模块,同时显示在页面中。 <object id=netmeeting classid=clsid:3e9baf2d-7a79-11d2-9334-0000f875ae17 viewastext> </object>2。调用netmeeting 中的呼叫对方方法。 <input class="button1" style......