找回密码
 立即注册
收起左侧

请问以下对象是否需要析构

1
回复
5582
查看
[复制链接]
累计签到:8 天
连续签到:1 天
来源: 2018-10-5 16:32:17 显示全部楼层 |阅读模式
1Qter豆
我定义了一个右键弹出菜单函数,函数如下。我想问一下各位大佬,rmenu和2个Action需不需要delete,不delete的话会不会造成内存泄漏
void MyListView::showRightMenu(const QPoint &p)
{
    QMenu *rmenu = new QMenu(this);
    QAction *addAction = rmenu->addAction("add");
    QAction *delAction = rmenu->addAction("delete");
    connect(addAction , SIGNAL(triggered(bool)), this, SLOT(edit_menu1()));
    connect(delAction, SIGNAL(triggered(bool)), this, SLOT(edit_menu2()));
    rmenu->exec(this->mapToGlobal(p));
}

最佳答案

查看完整内容

QMenu构造时指定了父(this),那么父析构时会自动析构子。所以无需delete。但是,建议将该对象作为成员变量进行保存,以免每次都申请新内存,造成浪费。
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-5 16:32:18 显示全部楼层
本帖最后由 baizy77 于 2018-10-5 22:09 编辑

QMenu构造时指定了父(this),那么父析构时会自动析构子。所以无需delete。但是,建议将该对象作为成员变量进行保存,以免每次都申请新内存,造成浪费。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了