C++ 中的显示关键字是什么意思?


C++ 中的显式关键字用于将构造函数标记为不隐式转换类型。例如,如果您有名为 Foo 的类,那么 −

class Foo {
public:
    Foo(int n); // allocates n bytes to the Foo object
    Foo(const char *p); // initialize object with char *p
};

现在,如果您尝试

Foo mystring = 'x';

字符 'x' 将被隐式转换为 int,然后将调用 Foo(int) 构造函数。但这并不是预期结果。所以,为了防止出现这种情况并使代码不易出错,将构造函数定义为显式的 −

示例:

class Foo {
   public:
      explicit Foo (int n); //allocate n bytes
      Foo(const char *p); // initialize with string p
};

更新于:2020 年 6 月 24 日

3 千次以上查看

开启你的职业生涯

完成课程获得认证

开始吧
广告