C++c implicit explicitt关键字的用法,例子?

C++关键字_百度知道
求全部关键字和中文解释
提问者采纳
try执行一个被throw 抛出的异常.throw抛出一个异常.static给一个变量创建永久的存储空间.extern告诉编译器在别的地方变量已经被定义过了.explicit仅用在构造器的正确匹配.delete释放内存.reinterpret_cast改变一个变量的类型.char声明一个字符型变量.short声明一个短整型变量.dynamic_cast动态投射.public在一个类中声明公共成员.switch让一个变量在不同的判断下执行不同的代码.int声明一个整型变量.namespace用一个定义的范围划分命名空间.register定义一个寄存器变量.this指向当前对象.friend允许非函数成员使用私有数据.void声明函数或数据是无关联数据类型.operator创建重载函数.break结束一个循环.bool声明一个布尔型变量.double声明一个双精度浮点变量.const_cast从一个const变量中抛出.static_cast执行一个非多态性cast.mutable忽略const变量.else是一个if语句中的预备条件. continue在循环中间断循环.class声明一个类.virtual创建一个不被已构成类有限考虑的函数.inline定义一个函数为内联.typeid描述一个对象.typename声明一个类或未定义的类型.signed修改变量类型声明.goto跳转到程序的其它地方.struct创建一个新结构体.default是一个case语句中的缺省项.enum创建列举类型.catch处理 thrown 产生的异常.wchar_t声明一个带有宽度的字符型变量.const声明一个常量.unsigned声明一个无符号整型变量.auto声明一个本地变量.do构造循环体.long声明一个长整型变量以下是C++ 关键字 望楼主采纳 另:楼主留下邮箱 我传个C&#92.private在一个类中声明私有成员.float声明一个浮点型变量.while用来构成循环.using用来输入一个namespace.for构造循环.new允许动态存储一个新变量.template创建一个给特殊函数.false属于布尔值.protected在一个类中声明被保护成员.union一个结构体在当前位置分配给多个变量相同的内存.volatile警告编译器有关的变量可能被出乎意料的修改.return从一个函数中返回.case一个switch语句的一部分.true布尔类型的一个值.typedef从现有的类型中创建一个新类型.if从一次判断的结果处执行代码.sizeof返回一个变量或类型的长度;C++ 手册给你 asm插入一个汇编指令
提问者评价
其他类似问题
2人觉得有用
按默认排序
其他1条回答
优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,signal if(ax,限制在了当前文件里; while(*intS/ &#47. 该关键字在多线程环境下经常使用,以降低模块间的耦合度: 1&gt。 b.baidu://用const修饰函数的返回值 a、静态全局变量,逻辑上这样理解.
详细说明,可以预防意外的变动:生命有符号类型变量或函数 void .
说明;//统计函数被调用的次数; &#47.com/lzyu/blog/item/da。 (3)static
常见的两种用途; 3&gt: const char * GetString(void);abc&quot。它可以适用于基础类型如:C语言中的关键字 auto 。例如将void Func(A a) 改为void Func(const A &a)://hi,结构或者类的所有成员都会被视为volatile: mov ax,这样可以在下一次调用的时候还可以保持原来的赋值.html 另外(1)auto
这个这个关键字用于声明变量的生存期为自动:一个参数既可以是const同时是volatile。 如不要把函数int GetInt(void) 写成const int GetInt(void):一种循环语句(可意会不可言传) signed: mov ax,自己仅仅在变量的作用范围内可见;若全局变量仅在单个C文件中访问;若全局变量仅由单个函数访问; char string[4] = &当static用来修饰全局变量时;*value,因为所有的变量默认就是auto的,编译器知道该变量的值会在外部改变,特别是数组等含有较多元素的存储类型,需要考虑重入问题(只要输入数据相同就应产生相同的输出) (4)const
被const修饰的东西都受到强制保护;&#47。这一点是它与堆栈变量和堆变量的区别,*p2可变 同理:用于开关语句 case.也适用于C的结构和C++的类、联合和函数中定义的变量视为全局变量;。 3&gt,p2不可变.baidu,编译不能通过:说明变量在程序执行中可被隐含地改变
/&#47,const关键字只能放在函数声明的尾部;&#47。 2&gt、变量用static告知编译器,上边修饰的是*p1,看一下对应的伪汇编代码就明白了;const char *&#39,这时候。 const int *value,开始下一轮循环 for,然后循环等待直到intSignal 为1 时退出,使其不能被别的程序extern,它可能不存在当前的文件中,又降低了函数的可理解性:循环语句的循环条件 static ,而不是使用保存在寄存器里的备份;/&#47:声明短整型变量或函数 unsigned:int:结束当前循环。C 编译器是没有线程概念的,*value可变 /减少局部数组建立和赋值的开销,也看不带参数) union:条件语句否定分支(与 if 连用) long .:声明自动变量 一般不使用 double ; 正确的用法是:声明枚举类型 register.对于内部数据类型的输入参数,目的是提高效率,signal label,上边修饰的是p2; p2++;/ } 该线程启动时将intSignal 置为2,因此每次访问该变量时会重新读取,但它肯定要存在于工程中的某一个源文件中或者一个Dll的输出中.com/lzyu/blog/item/da:声明结构体变量或函数 break:声明无符号类型变量或函数 设计和使用访问动态全局变量。但是实际运行的时候该线程却不会退出; *intSignal=2.如果给以“指针传递”方式的函数返回值加const修饰,这时候就需要用到cannot convert from ',还是在全局静态储存区,以减少建立或者初始化这些变量的开销;&#47,它就改变了全局变量的作用域。 作用: typedef char * pStr: const char *str = GetString()。 简单示例; 2&gt: char *str = GetString(),不要将“值传递”的方式改为“const引用传递”: label:有这个变量;const成员函数的声明中,value都不可变 (5)volatile
表明某个变量的值可能在外部被改变;value不可变,p1可变 const pStr p2 = string!=1) goto label 对于C编译器来说。当对结构或者类对象使用volatile修饰的时候; return 0,表示该类成员不修改对象; &#47,同一个变量可能被多个线程修改: if(ax.: const type m,该返回值只能被赋给加const修饰的同类型指针,需要tydef int* NewType,char:声明联合数据类型 const 、静态局部变量的函数时; 如下语句将出现编译错误、返回值.变量的建立和赋值是需要一定的处理器开销的、变量会被放在程序的全局存储区中:声明长整型变量或函数 switch :声明函数无返回值或无参数,甚至函数的定义体。 参考http,能提高程序的健壮性,否则该线程不会退出; &#47,加const修饰没有任何价值,声明无类型指针(基本上就这三个作用) &#47,因为在编写多线程的程序时,它并不知道这个值会被其他线程修改;char *' to '正确。自然就把它cache在寄存器里面。
使用注意: 1&gt:声明双精度变量或函数 int。否则既达不到提高效率的目的; const int**value不可变,所作的循环变为如下面伪码所示。这个关键字不怎么多写。 3&gt,那么函数返回值(即指针)的内容不能被修改:计算数据类型长度 volatile.如果函数返回值采用“值传递方式”: 声明整型变量或函数 struct。这一点是它与全局变量的区别,是volatile因为它可能被意想不到地改变: DWORD __stdcall threadFunc(LPVOID signal) { int* intSignal=reinterpret_cast(signal);!=1) sleep(1000);新的类型pStr。 (6)extern extern 意为“外来的”···它的作用在于告诉编译器,而在函数中定义的变量视为局部变量、结构。它可以修饰函数的参数,而程序通过该变量同步各个线程:无条件跳转语句 sizeof:这个值可能会在当前线程外部被改变,则可以将这个变量修改为静态全局变量;修饰m为不可改变 示例,即将不在任何类:声明浮点型变量或函数 short !=1) goto label
注意。例如void Func(int x) 不应该改为void Func(const int &x):跳出当前循环 修饰输入参数 a,应该将“值传递”的方式改为“const引用传递”; &#47,由于函数会把返回值复制到外部临时的存储单元中; b:声明变量是在其他文件正声明(也可以看做是引用变量) return ; p1++。也就是说,value不可变。显然intSignal的值必须在外部被改变。 如对于:用以给数据类型取别名(当然还有其他作用) char ,const修饰指针时用此原则判断就不会混淆了: 1&gt.,*value可变 const (int *) value,即使在外部将它的值改为1;错误。volatile 的本意是指。它是const因为程序不应该试图去修改它; const char *p1 = string; 2&(int *)是一种type。 2&gt: 1&gt,但是没有改变其存放位置,value可变 int* const value:声明静态变量 if,以降低模块间的耦合度,则可以将这个变量改为该函数的静态局部变量:子程序返回语句(可以带参数.对于非内部数据类型的输入参数。 (2)register
这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率
您可能关注的推广回答者:
关键字的相关知识
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++关键字应用总结_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
C++关键字应用总结
详​细​介​绍​了​C​+​+​所​有​关​键​字​的​应​用​和​举​例​。
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢C++的explicit关键字介绍 - C/VC++ - 编程语言 -
热门搜索:
您的位置: >>>C++的explicit关键字介绍
C++的explicit关键字介绍
[摘要]explicit用来防止由构造函数定义的隐式转换,本文介绍C++的explicit关键字,并提供简单的示例代码供参考。
explicit用来防止由构造函数定义的隐式转换。隐式转换:可以由单个实参来调用的构造函数定义了一个从形参类型到该类类型的隐式转换。例如:#include&iostream&
class Test
Test(int x){
int get(){
void print(Test t){
cout&&t.get()&&
int main(){
print(100);
}Test类的构造函数就定义了一个从int类型到Test类型的隐式转换。编译器在试图编译某一条语句时,如果某一函数的参数类型不匹配,编译器就会尝试进行隐式转换,如果隐式转换后能正确编译,编译器就会继续执行编译过程,否则报错。例如在上述代码中的print(100)语句中,100是int类型的数据,而print函数的参数要求是Test类型的,类型不匹配,编译器就会利用Test的构造函数进行隐式转换,将100转换为一个Test类型的实例,而后继续编译。上述代码最终能够正确编译,最终执行结构为:而explicit关键字是阻止单参数构造函数的这种隐式转换机制。如果在上述的代码中的Test构造函数前面加上explicit修饰的话,编译就会出错,如下:由此可见,被声明为explicit的构造函数禁止编译器执行非预期的类型转换。
相关文章:
上一篇:下一篇:
24小时排行
Copyright © 2010 - 2011 9SSSD. All Rights Reserved

我要回帖

更多关于 c 11 explicit 的文章

 

随机推荐