`

C++的关键字explicit

阅读更多
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。
  C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 
  所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。
  这样看起来好象很酷, 很方便。 但在某些情况下(见下面权威的例子), 却违背了我们(程序员)的本意。 真是成也萧何, 败也萧何。 这时候就要在这个构造器前面加上explicit修饰, 指定这个构造器只能被明确的调用,使用, 不能作为类型转换操作符被隐含的使用。 呵呵, 看来还是光明正大些比较好。 
  explicit构造函数的作用
  解析:

	
 
   普通构造函数能够被隐式调用。而explicit构造函数只能被显示调用。
分享到:
评论

相关推荐

    C++关键字大全(67个).txt

    C++关键字大全(67个) asm auto bad_cast bad_typeid bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum except explicit extern false finally float ...

    C++关键字汇总 需要的可以下

    C++是一种广泛使用的面向对象的编程...因此,这个名为“C++关键字.jpg”的文件很可能是包含这些关键字的图片资料,对于初学者来说是一个很好的复习和参考工具。不断练习和实践,才能真正掌握C++的关键字和语言精髓。

    c++关键字(精选)大全.docx

    C++ 关键字大全 C++ 作为一门高效、灵活的编程语言,具有丰富的关键字集合,了解这些关键字的作用和用法是每个 C++ 开发者的必备技能。下面,我们将对 C++ 的关键字进行分类和解释,从基本数据类型到控制流语句,从...

    C++关键字详细使用

    except explicit extern false finally float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static...

    c++关键字解释大全

    ### C++关键字详解 在C++编程语言中,关键字具有特定的语法意义,它们由编译器识别并赋予特殊含义。下面将详细介绍一系列C++的关键字及其用途。 #### asm(汇编指令) - **功能**:`asm`关键字用于嵌入汇编代码到...

    c++关键字详解

    本文将深入探讨几个重要的C++关键字:volatile、mutable、explicit以及dynamic_cast。 首先,volatile关键字是用于处理多线程环境中的共享变量的。在多线程编程中,当多个线程需要访问并修改同一个变量时,为了确保...

    c++关键字大全.docx

    以下是一些重要的C++关键字的详细解释: 1. `asm`:这个关键字允许程序员在C++程序中嵌入汇编代码,以实现低级别的操作。这对于某些性能关键的代码段或需要硬件交互的场景很有用。 2. `auto`:这是一个存储类型...

    c/c++拷贝构造函数和关键字explicit详解

    C++中的拷贝构造函数和关键字explicit详解 C++中的拷贝构造函数是一种特殊的构造函数,它用于初始化对象时拷贝另一个对象的内容。拷贝构造函数的格式为`Type::Type(const Type&)`,其中`Type`是类的名称。拷贝构造...

    c++关键字大全.pdf

    以下是一些重要的C++关键字的详细解释: 1. `asm`: 这个关键字允许程序员在C++代码中直接插入汇编语言代码,以实现特定的低级别操作。 2. `auto`: `auto`是C++11引入的,用于自动推断变量的类型。当声明变量时,...

    (完整版)c++关键字大全.doc.pdf

    以下是对给定文件中列出的一些C++关键字的详细解释: 1. `asm`: 这个关键字允许程序员在C++代码中嵌入汇编语言指令。通常用于优化性能关键的代码片段,但使用汇编会降低代码的可读性和可移植性。 2. `auto`: `auto...

    C++关键字和操作符替代名

    ### C++关键字和操作符替代名 #### 概述 在C++编程语言中,关键字是具有特定含义的预定义标识符,它们被语言保留用于构成语法结构的关键部分。此外,C++还支持一系列操作符,包括算术、比较、逻辑等类型。为了提高...

    C++关键字-全.docx

    C++是一种强类型、面向对象的编程语言,其关键字是语言语法的重要组成部分。在C++中,关键字具有特殊的含义,它们不能作为标识符(如变量名、函数名)使用。以下是一些C++的关键字及其用途的详细解释: 1. `asm`: ...

    C++ explicit通俗解释

    C++ explicit关键字在刚学的时候就接触到了,也从各处了解了一些,但始终云里雾里,在闲来无事的时候再仔细研究了一下,自己消化理解了一下,自认为比其他网友总结的精简而不失准确。

    C++66个关键字的中文含义

    ### C++66个关键字的中文含义详解 #### asm(汇编) - **用途**:允许在C++程序中嵌入汇编代码。 - **语法**:`asm(指令字符串);` - **示例**:如果需要直接控制硬件或者优化性能,可以在C++中插入汇编代码。 ```...

    C++关键字[全].docx

    C++是一种强大的、静态类型的面向对象编程语言,其语法丰富,包括多个关键字用于不同的目的。以下是一些在标题和描述中提到的关键字的详细解释: 1. `asm`: 在较旧的C++版本中,`asm`用于在C++代码中嵌入汇编语言,...

    (完整版)c++关键字大全.docx

    C++是一种强大的、面向对象的编程语言,它的语法丰富,包含了许多关键字,这些关键字在程序设计中扮演着至关重要的角色。以下是C++中的一些主要关键字及其详细解释: 1. `asm`:允许在C++程序中插入汇编代码,提供...

    C++关键字大全 (2).docx

    在C++中,关键字是被语言保留并具有特殊含义的标识符,不能作为变量名或函数名使用。以下是一些C++的关键字及其用途: 1. `auto`: 自C++11引入,`auto`用于类型推断,它告诉编译器根据初始值自动推断变量的类型。...

Global site tag (gtag.js) - Google Analytics