C++中的虚析构函数
来源:互联网 发布:长春知远画室 编辑:程序博客网 时间:2024/06/18 10:39
[转载]原文地址:http://www.cppblog.com/mzty/archive/2006/07/31/10743.html
struct A
{
virtual ~A() = 0;
};
struct B : A
{
virual ~B() {}
};
int main( void )
{
B x;
}
编译的时候肯定报A::~A未实现,这是因为普通virtual只调用动态类型的那个函数实现,所以基类的可以不实现;而virtual析构函数则不同,它需要由下往上层层调用,所以每一层都需要实现。
另外,有没有实现代码 跟 是否为纯虚 是没有关系的,只要把 A 改为:
struct A
{
virtual ~A() = 0 {}
};
struct A
{
virtual ~A() = 0 {}
};
应当写成
struct A
{
virtual ~A() = 0;
};
A::~A()
{
}
因为C++规定 =0 和 {} 不能同时出现。
More Infomation:
C++的虚析构函数
http://etkxx.gro.clinux.org/bone/virtual-destructor.html
- c中的函数指针
- C ++ 中的函数
- C中的随机数函数
- c中的strtok函数
- c语言中的函数
- C中的static函数
- unix中的c函数
- C中的stat()函数
- C中的strncat()函数
- C中的qsort函数
- c中的字符串函数
- C中的access函数
- C语言中的函数
- C中的access函数
- C中的access函数
- C中的access函数
- C中的qsort函数
- C语言中的函数
- 泪的告白
- 编程规范和范例
- 全新电脑防御时代的革命,通过军方认证的美杜杉一号
- 求一字符串出现次数最多的字符,asm
- 绑定端口与INADDR_ANY
- C++中的虚析构函数
- Interface Design & UAR
- Getting Real ——把握现实
- SVN嵌入属性(获得最后一次提交的人,时间...)
- 快乐虾的工具箱 0.0.1
- ROR与社区网站开发
- sql查询出表中所有列名 判断两个表中的列是否相同?
- X86上4系统的安装
- TCP/IP之TCP协议(3):流量控制(滑动窗口协议)