c++中一些关键字的总结(转)
2011-05-03 20:56
260 查看
(1)asm asm已经被__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 跳出当前循环.The break statement terminates the execution of the nearest enclosing loop or conditional statement in which it appears. (7)case switch语句分支.Labels that appear after the case keyword cannot also appear outside a switch statement. (8)catch,throw,try 都是异常处理的语句,The try, throw, and catch statements implement exception handling. (9)char 声明字符型变量或函数. (10)class 声明或定义类或者类的对象.The class keyword declares a class type or defines an object of a class type. (11)const 被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它可以修饰函数的参数、返回值,甚至函数的定义体。 作用: 1.修饰输入参数 a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const引用传递”,目的是提高效率。例如将void Func(A a) 改为void Func(const A &a)。 b.对于内部数据类型的输入参数,不要将“值传递”的方式改为“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。 2.用const修饰函数的返回值 a.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。 如对于:const char * GetString(void); 如下语句将出现编译错误: char *str = GetString();//cannot convert from 'const char *' to 'char *'; 正确的用法是: const char *str = GetString(); b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。 如不要把函数int GetInt(void) 写成const int GetInt(void)。 3.const成员函数的声明中,const关键字只能放在函数声明的尾部,表示该类成员不修改对象. 说明: const type m; //修饰m为不可改变 示例: typedef char * pStr; //新的类型pStr; char string[4] = "abc"; const char *p1 = string; p1++; //正确,上边修饰的是*p1,p1可变 const pStr p2 = string; p2++; //错误,上边修饰的是p2,p2不可变,*p2可变 同理,const修饰指针时用此原则判断就不会混淆了。 const int *value; //*value不可变,value可变 int* const value; //value不可变,*value可变 const (int *) value; //(int *)是一种type,value不可变,*value可变 //逻辑上这样理解,编译不能通过,需要tydef int* NewType; const int* const value;//*value,value都不可变 (12)continue 结束当前循环,开始下一轮循环.Forces transfer of control to the controlling expression of the smallest enclosing do, for, or while loop. (13)default switch语句中的默认分支.None of the constants match the constants in the case labels; a default label is present.Control is transferred to the default label. (14)delete 经常用于动态内存分配的语句,Deallocates a block of memory. (15)do 在do-while循环结构中开始循环体.Executes a statement repeatedly until the specified termination condition (the expression) evaluates to zero. (16)double 声明双精度变量或函数. (17)else 条件语句否定分支(与 if 连用). (18)enum 声明枚举类型.The name of each enumerator is treated as a constant and must be unique within the scope where the enum is defined. (19)explicit This keyword is a declaration specifier that can only be applied to in-class constructor declarations. An explicit constructor cannot take part in implicit conversions. It can only be used to explicitly construct an object. (20)export MSDN只说The export keyword is not supported on templates.一种导出语句吧.. (21)extern extern 意为“外来的”···它的作用在于告诉编译器:有这个变量,它可能不存在当前的文件中,但它肯定要存在于工程中的某一个源文件中或者一个Dll的输出中。声明变量是在其他文件中声明(也可以看做是引用变量).Objects and variables declared as extern declare an object that is defined in another translation unit or in an enclosing scope as having external linkage. (22)false,true bool类型的两个枚举值. (23)float 声明浮点型变量或函数. (24)for 一种循环语句(可意会不可言传).Use the for statement to construct loops that must execute a specified number of times. (25)friend 声明友元函数或者类.The friend keyword allows a function or class to gain access to the private and protected members of a class. (26)goto 无条件跳转语句.Performs an unconditional transfer of control to the named label. (27)if 条件语句.Controls conditional branching.常与else一起用. (28)inline 声明定义内联函数,编译时将所调用的代码嵌入到主函数中.The inline specifiers instruct the compiler to insert a copy of the function body into each place the function is called. (29)int 声明整型变量或函数. (30)long 声明长整型变量或函数. (31)mutable This keyword can only be applied to non-static and non-const data members of a class. If a data member is declared mutable, then it is legal to assign a value to this data member from a const member function. (32)namespace Dynamically imports an element behavior into a document. (33)new 动态内存分配.Allocates memory for an object or array of objects of type-name from the free store and returns a suitably typed, nonzero pointer to the object. (34)operator The operator keyword declares a function specifying what operator-symbol means when applied to instances of a class. (35)private 类私有函数和数据成员的标示.When preceding a list of class members, the private keyword specifies that those members are accessible only from member functions and friends of the class. This applies to all members declared up to the next access specifier or the end of the class. (36)protected The protected keyword specifies access to class members in the member-list up to the next access specifier (public or private) or the end of the class definition. (37)public When preceding a list of class members, the public keyword specifies that those members are accessible from any function. This applies to all members declared up to the next access specifier or the end of the class. (38)register 声明积存器变量.The register keyword specifies that the variable is to be stored in a machine register, if possible.这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,从而提高效率。 (39)return 子程序返回语句(可以带参数,也看不带参数),返回函数调用点.Terminates the execution of a function and returns control to the calling function (or, in the case of the main function, transfers control back to the operating system). Execution resumes in the calling function at the point immediately following the call. (40)short 声明短整型变量或函数. (41)signed,unsigned 声明有符号类型变量或函数;声明无符号类型变量或函数. (42)static 声明静态变量.When modifying a variable, the static keyword specifies that the variable has static durationinitializes it to 0 unless another value is specified. (43)struct 声明结构体变量或函数.struct 类型是一种值类型,通常用来封装小型相关变量组. (44)switch Allows selection among multiple sections of code, depending on the value of an integral expression. (45)template 模板.The template declaration specifies a set of parameterized classes or functions. (46)this The this pointer is a pointer accessible only within the nonstatic member functions of a class, struct, or union type. (47)typedef 用以给数据类型取别名.Introduces a name that, within its scope, becomes a synonym for the type given by the type-declaration portion of the declaration. (48)typeid typeid is used to get the Type for a type at compile time. (49)typename Tells the compiler that an unknown identifier is a type.Use this keyword only in template definitions. (50)union 声明联合数据类型.A union is a user-defined data or class type that, at any given time, contains only one object from its list of members (although that object can be an array or a class type). (51)using The using declaration introduces a name into the declarative region in which the using declaration appears. (52)virtual 声明虚基类或虚函数.The virtual keyword declares a virtual function or a virtual base class. (53)void 声明函数无返回值或无参数,声明无类型指针. When used as a function return type, the void keyword specifies that the function does not return a value. When used for a function's parameter list, void specifies that the function takes no parameters. When used in the declaration of a pointer, void specifies that the pointer is "universal." (54)volatile 说明变量在程序执行中可被隐含地改变,表明某个变量的值可能在外部被改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。The volatile keyword is a type qualifier used to declare that an object can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread. (55)wchar_t 宽字. (56)while 循环语句的循环条件
相关文章推荐
- 【C++】static关键字用法总结
- 关于C++输入的一些总结
- C++中的static关键字的总结
- 关于C/C++中static关键字的作用总结
- 关于C++中的虚拟继承的一些总结
- 【关键字】一些关键字用法总结
- 第一次做c++项目的一些总结
- C++中关于虚拟继承的一些总结
- C++容器的一些总结
- C/C++中static和const关键字的作用总结
- 最近正在看c++一些容器,这篇总结的不错,分享
- 【七】C++一些新的关键字 -- new、delete、强制类型转换
- C/C++中static关键字及变量存储位置总结
- [C/C++]static关键字用法总结
- c++ --> const关键字总结
- 【C++】C/C++中static关键字作用总结
- 自己总结C/C++的一些容易被遗忘的基础知识!
- 关于C++中的虚拟继承的一些总结
- C++中几个重要的关键字总结
- C++中的static关键字的总结