您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > C++关键字及说明解释
C++关键词asmautobad_castbad_typeidboolbreakcasecatchcharclassconstconst_castcontinuedefaultdeletedodoubledynamic_castelseenumexceptexplicitexternfalsefinallyfloatforfriendgotoifinlineintlongmutablenamespacenewoperatorprivateprotectedpublicregisterreinterpret_castreturnshortsignedsizeofstaticstatic_caststructswitchtemplatethisthrowtruetrytype_infotypedeftypeidtypenameunionunsignedusingvirtualvoidvolatilewchar_twhile(1)asmasm已经被__asm替代了,用于汇编语言嵌入在C/C++程序里编程,从而在某些方面优化代码.虽然用asm关键词编译时编译器不会报错,但是asm模块的代码是没有意义的.(2)auto这个这个关键词用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键词不怎么多写,因为所有的变量默认就是auto的。(3)bad_cast,const_cast,dynamic_cast,reinterpret_cast,static_cast关于异常处理的,还不是太了解..(4)bad_typeid也是用于异常处理的,当typeid操作符的操作数typeid为Null指针时抛出.(5)bool不用多说了吧,声明布尔类型的变量或函数.(6)break跳出当前循环.Thebreakstatementterminatestheexecutionofthenearestenclosinglooporconditionalstatementinwhichitappears.(7)caseswitch语句分支.Labelsthatappearafterthecasekeywordcannotalsoappearoutsideaswitchstatement.(8)catch,throw,try都是异常处理的语句,Thetry,throw,andcatchstatementsimplementexceptionhandling.(9)char声明字符型变量或函数.(10)class声明或定义类或者类的对象.Theclasskeyworddeclaresaclasstypeordefinesanobjectofaclasstype.(11)const被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它可以修饰函数的参数、返回值,甚至函数的定义体。作用:1.修饰输入参数a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const引用传递”,目的是提高效率。例如将voidFunc(Aa)改为voidFunc(constA&a)。b.对于内部数据类型的输入参数,不要将“值传递”的方式改为“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如voidFunc(intx)不应该改为voidFunc(constint&x)。2.用const修饰函数的返回值a.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。如对于:constchar*GetString(void);如下语句将出现编译错误:char*str=GetString();//cannotconvertfrom'constchar*'to'char*';正确的用法是:constchar*str=GetString();b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。如不要把函数intGetInt(void)写成constintGetInt(void)。3.const成员函数的声明中,const关键词只能放在函数声明的尾部,表示该类成员不修改对象.说明:consttypem;//修饰m为不可改变示例:typedefchar*pStr;//新的类型pStr;charstring[4]=abc;constchar*p1=string;p1++;//正确,上边修饰的是*p1,p1可变constpStrp2=string;p2++;//错误,上边修饰的是p2,p2不可变,*p2可变同理,const修饰指针时用此原则判断就不会混淆了。constint*value;//*value不可变,value可变int*constvalue;//value不可变,*value可变const(int*)value;//(int*)是一种type,value不可变,*value可变//逻辑上这样理解,编译不能通过,需要tydefint*NewType;constint*constvalue;//*value,value都不可变(12)continue结束当前循环,开始下一轮循环.Forcestransferofcontroltothecontrollingexpressionofthesmallestenclosingdo,for,orwhileloop.(13)defaultswitch语句中的默认分支.Noneoftheconstantsmatchtheconstantsinthecaselabels;adefaultlabelispresent.Controlistransferredtothedefaultlabel.(14)delete经常用于动态内存分配的语句,Deallocatesablockofmemory.(15)do在do-while循环结构中开始循环体.Executesastatementrepeatedlyuntilthespecifiedterminationcondition(theexpression)evaluatestozero.(16)double声明双精度变量或函数.(17)else条件语句否定分支(与if连用).(18)enum声明枚举类型.Thenameofeachenumeratoristreatedasaconstantandmustbeuniquewithinthescopewheretheenumisdefined.(19)explicitexplicit主要用于修饰构造函数,使得它不用于程序中需要通过此构造函数进行隐式转换的情况,防止不必要的隐式转化.;指定此关键字,需要隐式转换方可进行的程序将会不能通过.而可通过强制转换使它没有用.Thiskeywordisadeclarationspecifierthatcanonlybeappliedtoin-classconstructordeclarations.Anexplicitconstructorcannottakepartinimplicitconversions.Itcanonlybeusedtoexplicitlyconstructanobject.(20)exportMSDN只说Theexportkeywordisnotsupportedontemplates.一种导出语句吧..(21)externextern意为“外来的”···它的作用在于告诉编译器:有这个变量,它可能不存在当前的檔中,但它肯定要存在于工程中的某一个源文件中或者一个Dll的输出中。声明变量是在其它文件中声明(也可以看做是引用变量).Objectsandvariablesdeclaredasexterndeclareanobjectthatisdefinedinanothertranslationunitorinanenclosingscopeashavingexternallinkage.(22)false,truebool类型的两个枚举值.(23)float声明浮点型变量或函数.(24)for一种循环语句(可意会不可言传).Usetheforstatementtoconstructloopsthatmustexecuteaspecifiednumberoftimes.(25)friend声明友元函数或者类.Thefriendkeywordallowsafunctionorclasstogainaccesstotheprivateandprotectedmembersofaclass.(26)goto无条件跳转语句.Performsanunconditionaltransferofcontroltothenamedlabel.(27)if条件语句.Controlsconditionalbranching.常与else一起用.(28)inline声明定义内联函数,编译时将所调用的代码嵌入到主函数中.Theinlinespecifiersinstructthecompilertoinsertacopyofthefunctionbodyintoeachplacethefunctioniscalled.(29)int声明整型变量或函数.(30)long声明长整型变量或函数.(31)mutablemutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。Thiskeywordcanonlybeappliedtonon-staticandnon-constdatamembersofaclass.Ifadatamemberisdeclaredmutable,thenitislegaltoassignavaluetothisdatamemberfromaconstmemberfunction.(32)namespace如同名字一样的意思,NameSpace:名字空间,之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用namespacexxx;你所使用的库函数或变量就是在该名字空间中定义的.这样一来就不会引起不必要的冲突了.命名空间是用来组织和重用代码的编译单元。所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。一:iostream和iostream.h格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用iostream.h时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用iostream的时候,该头文件没有定义全局命名空间,必须使用namespacestd;这样才能正确使用cout。二:所谓namespace,是指标识符的各种可见范围。C++标准
本文标题:C++关键字及说明解释
链接地址:https://www.777doc.com/doc-4948277 .html