Effective C++ 条款七 为多态基类声明virtual析构函数
class TimeKeeper
{
public:
TimeKeeper();
// ~TimeKeeper(); 错误,此作为一个基类,被继承了。其继承类被delete后,基类被销毁,但继承类可能没被销毁
virtual ~TimeKeeper();//必须声明为virtual类型才可以。
protected:
private:
};
class AtomicClock: public TimeKeeper{}; //继承
TimeKeeper* ptk = getTimeKeeper();
delete ptk;
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
记住:
1、带多态性质的基类应该声明为一个virtual析构函数,如果class带有任何virtual函数,他就应该拥有一个virtual析构函数。
2、classes设计的目的如果不是作为基类使用,或者不是为了具备多态性,就不应该声明为virtual类型的析构函数。
最新文章
- Ajax文件上传
- 关于获取、设置css样式封装的函数入门版
- uploadify使用教程
- HEVC学习之一编码框架
- 分析一个类似于jquery的小框架 (2)
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之一
- HBase1.0以上版本的API改变
- 比较任意两个JSON串是否相等(比较对象是否相等)JAVA版
- ORACLE 默认密码确认
- java中的substring用法
- 单源最短路径-Dijkstra算法
- css笔记02:选择器(标签式和类)
- 此windows副本不是正版解决方法
- 定制XP引导屏幕背景图像和替换windows这句话
- ruby如何查找一个方法属于哪个类
- Ubuntu 14.04 安装 sysrepo v0.7.5
- c#mvc实现登录
- QT在Linux下的安装
- 找不到命令 ifconfig
- centos 6.8操作系统安装arcgis server 10.4
热门文章
- (转)iOS开发之同一应用设置不同图标和名称
- LeetCode(108) Convert Sorted Array to Binary Search Tree
- 《C/C++专项练习》— (1)
- 【06】前端需要注意哪些SEO
- mac 打开apach 但无法访问localhost的解决方法
- numpy array_split()
- 【Luogu】P2530化工厂装箱员(DP)
- BZOJ 2820 YY的GCD ——莫比乌斯反演
- BZOJ 4516 [Sdoi2016]生成魔咒 ——后缀自动机
- BZOJ 3749: [POI2015]Łasuchy【动态规划】