Exceptional C++ Style之18
来源:互联网 发布:小智淘宝店 编辑:程序博客网 时间:2024/05/07 20:58
第18条 虚拟
虚拟也许是C++区别C的一个最显著特征之一。和模板不同,虚拟是需要带来运行期消耗的,具体原理参见《Inside C++ Object Model》。但是付出的代价表明,这个特性是绝对值得付出的。
我们的设计通常是这样的,在一个基类中定义一些接口,这些接口都是虚拟的。期待派生类来进行实现,但是这个地方Sutter给出一个原则,在这个基础上更进一步。Sutter认为,尽量将接口设计为非虚,而尽量将虚函数设置为私有的。当且仅当派生类需要调用基类的虚函数的时候,才将虚函数置为保护的。而基类的析构函数要么应当为公有虚函数,要么应当为保护的非虚函数。
在这个地方,似乎C++是先检查访问权限,再去查找虚函数的table,找到实际函数的指针。
- Exceptional C++ Style之18
- Exceptional C++ Style之1
- Exceptional C++ Style之2
- Exceptional C++ Style之3
- Exceptional C++ Style之4
- Exceptional C++ Style之5
- Exceptional C++ Style之6
- Exceptional C++ Style之7
- Exceptional C++ Style之8
- Exceptional C++ Style之9
- Exceptional C++ Style之10
- Exceptional C++ Style之11
- Exceptional C++ Style之12
- Exceptional C++ Style之13
- Exceptional C++ Style之14
- Exceptional C++ Style之15
- Exceptional C++ Style之16
- Exceptional C++ Style之17
- sharepoint:Adding Icons for Unknown File Types like
- debug在批处理文件中的应用
- C语言注册表操作实例(转)
- XmlHttp技术资料
- Symbian SDK release 下载地址
- Exceptional C++ Style之18
- Carbide C++ Express for Symbian
- Series 60应用程序开发资源(专题贴)
- LDAP概念性小结
- 无比无聊
- 编译器历史简要
- 我的第二个C++作业——打印日历
- 成功企业条件之一
- 有时时候很想被感动