游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2951|回复: 5

虚拟析构函数(virtual destructor)有什么用吗?

[复制链接]

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-6-13 19:22:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-13 21:54:00 | 显示全部楼层

Re:虚拟析构函数(virtual destructor)有什么用吗?

当然会被执行,不管你的子类的析构函数是否是virtual,也不管基类是否是virtual,基类的析构都会被执行的。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-6-13 21:57:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-14 03:56:00 | 显示全部楼层

Re:虚拟析构函数(virtual destructor)有什么用吗?

当然有用。
比如说你的class CB : public CA;

这个时候你:
CA *p = new CB();
delete p;
如果CA的析构函数不是虚拟的话,CB的析构函数就不会被执行,而
只有CA的析构函数会被执行。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-6-14 10:28:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

37

主题

180

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2004-6-20 19:39:00 | 显示全部楼层

Re: 虚拟析构函数(virtual destructor)有什么用吗?

有用的...

在RefCounter..引用??敌┚??玫

class DiTextureNode        : public DiRefCounter
{
        typedef        DiRefCounter super;
        friend class DiTexture;
        friend class DiGraphicDx9;

public:
        ////////////////////////////////////////////////////////////////////////////
        //        C O N T R U C T O R S / D E S T R U C T O R S
        ////////////////////////////////////////////////////////////////////////////
        //! Destructor
        virtual ~DiTextureNode(void);
        //! Virtual        Constructor
        virtual int Initialize(void);
        //! Virtual Destructor
        virtual int Release(void);

?release?r 被其他人引用的不??elease [em13]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-2 05:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表