- 联系电话 - - 来校路线 - 广州天河区五山路金华园区3楼307(华工南门)
您现在的位置: 计算机培训 >> 培训教程 >> C语言 >> 正文
C++语言虚函数的4条规则 作者:计算机培…    教程来源:广州计算机培训    点击数:    更新时间:2010-12-1

对于常规的基类函数来说,有下列使用规则:

1 、尽量使用非虚拟接口模式(NVI)让接口函数成为非虚拟的。

2 、尽量让虚函数成为私用的。

3 、只有当派生类需要调用基类对某个虚函数的实现时,才把虚函数声明为保护的。

4 、基类的析构函数应该要么为共有虚函数,要么为保护虚函数。

 

说明:12两条将虚公有接口的两个职责进行了很好的分解,遵守了单一职责原理。

  第4条说明了:如果要使用多态(指针调用),那么基类的析构函数一定要为虚函数;如果基类本身的设计不是处于多态考虑的话,那么就应该将析构函数设为保护类型。这样可防止出现使用指针的析构(基类无法被直接析构),只有派生类才能析构基类。

   非虚接口模式(NVI)的说明:基类对接口具有完全控制权,很方便在一个单一的、可复用的地方实施(enforce)接口的前条件。后条件、插入一些设备或做一些类似的事情。更好的是实现接口和实现分离;让基类在变化面前更稳定。条件检查可以仅在调式期有效,这更易于控制。如果非虚函数仅有唯一一行转发调用,编译器会做内联优化,没有效率问题。

学校路线 |网站地图| 学校优势 Copyright 2006-2016 All Rights Reserved 广州青大教育信息咨询有限公司 版权所有备案/许可证编号为粤ICP备11070650号-9 北大青鸟北京总部:北京阿博泰克北大青鸟信息技术有限公司广州计算机学校培训网 官方网址:www.itjspx.com 公司地址:广州市天河区五山路华南理工大学科技园金华园区3楼307(华工南门)