C++11之使用或禁用对象的默认函数

  C++11 允许显式地表明采用或拒用编译器提供的内置函数。例如要求类型带有默认构造函数,可以用以下的语法:

  C++11之使用或禁用对象的默认函数

  另一方面,也可以禁止编译器自动产生某些函数。如下面的例子,类型不可复制:

  C++11之使用或禁用对象的默认函数

  = delete的声明(同时也是定义)也能适用于非内置函数, 禁止成员函数以特定的形参调用:

  C++11之使用或禁用对象的默认函数

  若尝试以 double 的形参调用 f(),将会引发编译期错误, 编译器不会自动将 double 形参转型为 int 再调用f()。 若要彻底的禁止以非int的形参调用f(),可以将= delete与模板相结合:

  C++11之使用或禁用对象的默认函数

 参数:http://zh.wikipedia.org/wiki/C++0x#.E4.BD.BF.E7.94.A8.E6.88.96.E7.A6.81.E7.94.A8.E7.89.A9.E4.BB.B6.E7.9A.84.E9.A0.90.E8.A8.AD.E5.87.BD.E5.BC.8F

相关文章:

  • 2022-01-14
  • 2021-08-04
  • 2022-12-23
  • 2021-10-26
  • 2021-10-19
  • 2021-07-11
  • 2021-11-19
  • 2021-09-10
猜你喜欢
  • 2021-08-12
  • 2022-12-23
  • 2022-02-07
  • 2021-07-18
  • 2022-12-23
  • 2022-12-23
  • 2021-07-02
相关资源
相似解决方案