搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 构造和析构时为什么不能调用virtual函数?
标题:
构造和析构时为什么不能调用virtual函数?
只看楼主
newyj
等 级:
新手上路
威 望:
3
帖 子:542
专家分:0
注 册:2008-1-4
楼主
问题点数:0 回复次数:4
构造和析构时为什么不能调用virtual函数?
构造和析构时为什么不能调用virtual函数?
谢谢了
搜索更多相关主题的帖子:
virtual
函数
构造
2008-04-25 13:15
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
2
楼
得分:0
你说的是析构函数不能是virtual?如果是这个,析构函数可以是虚函数
学习需要安静。。海盗要重新来过。。
2008-04-25 13:36
中学者
等 级:
版主
威 望:
20
帖 子:3554
专家分:80
注 册:2007-9-14
第
3
楼
得分:0
在构造和析构函数内调用virtual函数却会得到本地版本...
对于构造函数来说,对象的vptr指针设置要在最晚辈派生类中才能完全设置正确...因为从继承树可以知道,每个祖先类都会设置vptr以指向该类的子对象.
总的来说,原因是vptr没完成初始化.
对于析构函数来说,是因为派生类对象先被释放,所以virtual的调用可能会触及已释放的部分,所以不安全也不合法..
樱花大战, 有爱.
2008-04-25 13:54
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
4
楼
得分:0
恩,同意楼上...不安全到是真的...语法上是可以的...多态提到是可以用的
学习需要安静。。海盗要重新来过。。
2008-04-25 14:01
newyj
等 级:
新手上路
威 望:
3
帖 子:542
专家分:0
注 册:2008-1-4
第
5
楼
得分:0
谢谢楼上两位的回答
构造函数 还不是很清楚 为什么
2008-04-25 18:37
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-211011-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.246443 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved