防止无意的错误


虽然使用override标识符不是必需的,它是强烈建议,因为它将有助于防止无意的错误。

(如果你想知道为什么这是作为一个标识符,而不是一个关键词,实现我假定这是这样做的,名为“重写”可以作为在其他情况下,一个正常的变量名。如果它被定义为一个关键词,它会在所有的情况下被保留,这可能会破坏现有的应用程序)

最后的

有偶尔的时候,你不想让别人来重写虚函数,或者创建一个派生类。C + + 11将最终提供此功能的标识符。

下面的示例演示的最后标识符使非忽略的使用功能:

1

2

3

4

5

6

7

8

9

阶级基础

{

虚a()最终;/ /最后的标识符标记该函数作为非忽略

};

派生类:公共基础

{

虚a();/试图重写函数库::a()最终将导致编译器错误

};

最后的标识也可以用在类使其非遗传的:

1

2

3

4

5

6

7

阶级基础最终/最后的标识标志着这类不可继承

{

};

派生类:公共基础/试图重写final类基地将导致编译器错误

{

};

有一些正当的理由,最终使函数或类。例如,最终最常见的用途是确保一个不可变类保持不变。一个不可变类是专门设计的类的状态不能被创建后,改性。没有最终的标识符,派生类可以使类成为可变的功能。如果基类是最终的,不能将它的子类,这是不可避免的。

然而,一般来说,除非你有很好的理由,最后通常应该避免使用。如果你使用关键字,文件的原因,因为它可能不是很明显的继承你的代码的人。

默认

默认情况下,C++将提供一个默认构造函数,拷贝构造函数,赋值操作符(==操作符)和析构函数。如果你为你的类的所有这些功能替换版本,C++没有提供默认版本。然而,在C + + 11,你现在可以指定您希望编译器提供一个默认的吧。这是通过原型的功能和使用默认的说明符做:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值