游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3515|回复: 7

virtue在普通类的析构函数里可以随便加?

[复制链接]

13

主题

63

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2009-10-23 21:48:00 | 显示全部楼层 |阅读模式
析构函数可以随便加virtue吗?最近看到一些代码,就写了普通的一个类,析构函数声明的时候前面加了virtue,这样也行?不是在有继承的时候才用到virtue吗。

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2009-10-23 22:01:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

这样也行。不过性能……

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2009-10-23 22:04:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

首先,是virtual,不是virtue
1,可以先理解一下virtual的特性.
2,再理解一下"释构函数",virtual的特性.
3,这跟性能没有多大关系,就一个virtual point,但如果你是设计者,没有这个,当别人因为某种操作crash时,原因是这个,会骂死你.

13

主题

63

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2009-10-24 10:55:00 | 显示全部楼层

Re: virtue在普通类的析构函数里可以随便加?

楼上意思是这个virtual在这也可以加,而且加上能够增强安全性。

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-10-24 12:21:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

当你希望别人继承你的类时 你的析构函数要加上virtual 修饰 ,要让类的使用者一眼可以看出你的设计目的.

1

主题

88

帖子

93

积分

注册会员

Rank: 2

积分
93
QQ
发表于 2009-10-24 22:50:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

虚析构函数在基类的时候定义会比较好

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-10-28 18:31:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

class Base;
class Child;

Base *ptr = new Child;
delete ptr; // 这样会出问题,如果不是vitual析构函数

2

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
发表于 2009-10-29 16:25:00 | 显示全部楼层

Re:virtue在普通类的析构函数里可以随便加?

virtual 关键字 是为了说明这是一个虚函数.
通常情况下,如果一个类会有子类,都会在析构函数前加virtual
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-18 09:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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