暂时未使用
逝水流年,燕离燕返...
posts - 1, comments - 0, trackbacks - 0, articles - 0
C++博客
首页
新随笔
联系
管理
聚合
析构函数中调用虚函数
今天一不小心写下了类似如下的代码
class
A
{
public
:
virtual
void
F()
=
0
;
virtual
~
A()
{ F()}
}
;
class
B:
public
A
{
public
:
virtual
void
F()
{}
}
;
当我使用B的时候,提示我F()未定义.我就想,我明明定义啦.
于是我将A类中的F(){cout..}了一下. 发现,当析构的时候,调用的是A::F();
突然间明白了. 当析构的时候,我们是从B::~B() ----> A::~A()
当调用A::~A()的时候,B::F()函数已经从虚表中拆除. 换来的是恢复了原来的A::F();
至于编译器为何提示这个错误,则是很先进的事情. ...
Posted on 2010-08-08 00:10
暂时未使用
阅读(196)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
博客园最新博文
博问
管理
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
思绪不曾驻足,让指尖将其停留!
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2010年8月 (1)
搜索
最新评论