游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1294|回复: 4

问一个有关指针的问题

[复制链接]

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2005-7-25 08:30:00 | 显示全部楼层 |阅读模式
char *a;
a=new int;
delete a;
这样会引起内存泄漏吗?是不是要先把a转为int
还有如果是类
class b{
public:
int aaaa;
};
class bb:public b{
public:
int aaaaaaaa;
};
b* pb;
pb=new bb;
delete bb
这样呢?

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2005-7-25 08:43:00 | 显示全部楼层

Re:问一个有关指针的问题

都不会发生内存泄露。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-7-25 09:46:00 | 显示全部楼层

Re:问一个有关指针的问题

对于第二种情况,要注意的是析构函数,如果你的析构函数不具备多态性,那么当delete的时候,只会执行基类的析构函数,而不会执行派生类的析构函数,常用的做法是将析构函数声明为虚函数,但这并不影响内存的释放。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-7-25 15:45:00 | 显示全部楼层

Re:问一个有关指针的问题

virtual dctor

42

主题

418

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2005-7-26 16:39:00 | 显示全部楼层

Re: Re:问一个有关指针的问题

bigbook2000: Re:问一个有关指针的问题

对于第二种情况,要注意的是析构函数,如果你的析构函数不具备多态性,那么当delete的时候,只会执行基类的...

如果不定义虚析构函数,delete 执行的是当前指针类型的析构函数,当然也包括该类所有基类的析构函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 13:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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