C++中的explicit关键字使用示例

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  导读:考试大免费提供大量实用资料,本次辅导将全部采用视频授课的形式呈现给广大学员,考生可以随时报名参加学习,不用东奔西跑搜寻资料,备考费用更加低廉!欲报丛速!

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

  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

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答