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