设为首页 加入收藏

TOP

C++中的explicit关键字使用示例
2014-10-23 09:30:05 来源: 作者: 【 】 浏览:56
Tags:explicit 关键字 使用 示例

  缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:


  class MyClass


  {


  public:


  MyClass( int num );


  }


  ....


  MyClass obj = 10; //ok,convert int to MyClass


  在上面的代码中编译器自动将整型转换为MyClass类对象,实际上等同于下面的操作:


  MyClass temp(10);


  MyClass obj = temp;


  上面的所有的操作即是所谓的"隐式转换"。


  如果要避免这种自动转换的功能,我们该怎么做呢?嘿嘿这就是关键字explicit的作用了,将类的构造函数声明为"显示",也就是在声明构造函数的时候前面添加上explicit即可,这样就可以防止这种自动的转换操作,如果我们修改上面的MyClass类的构造函数为显示的,那么下面的代码就不能够编译通过了,如下所示:


  class MyClass


  {


  public:


  explicit MyClass( int num );


  }


  ....


  MyClass obj = 10; //err,can't non-explict convert


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++循环语句基本概念详解 下一篇C++XML解析之TinyXML篇

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)