explicit关键在C ++中是什么意思?

C ++中的explicit关键字用于标记构造函数以不隐式转换类型。例如,如果您有Foo类-

class Foo {

public:

    Foo(int n); //将n个字节分配给foo对象

    Foo(const char *p); //用char * p初始化对象

};

现在,如果您尝试

Foo mystring = 'x';

char'x'被隐式转换为int,然后将调用Foo(int)构造函数。但这不是预期的。因此,为防止此类情况并使代码更不易出错,请将构造函数定义为显式-

例 

class Foo {

   public:

      explicit Foo (int n); //分配n个字节

      Foo(const char *p); //使用字符串p进行初始化

};

以上是 explicit关键在C ++中是什么意思? 的全部内容, 来源链接: utcz.com/z/316710.html

回到顶部