社区
Qt
帖子详情
Qt使用类的对象,什么情况下带*,什么情况下需要new?
xiaosky123
2013-08-01 05:21:05
一直有个疑问,Qt使用类的对象,什么情况下带*,什么情况下需要new?
例如:QPalette myPalette,定义一个QPalette对象没有带* ,也没有new
QPushButton *pushButton= new QPushButton ,这个又要带。
...全文
2440
6
打赏
收藏
Qt使用类的对象,什么情况下带*,什么情况下需要new?
一直有个疑问,Qt使用类的对象,什么情况下带*,什么情况下需要new? 例如:QPalette myPalette,定义一个QPalette对象没有带* ,也没有new QPushButton *pushButton= new QPushButton ,这个又要带。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icosagon
2013-08-07
打赏
举报
回复
4
简单一点,qt的类,从QObject继承的一般用new,其它一般直接构造
donwmufromdying
2013-08-07
打赏
举报
回复
同意accsoar的意见。楼主,这个问题其实跟Qt没啥关系。跟c++有关系。建议先看看入门的c++ primier
尘中远
2013-08-05
打赏
举报
回复
有父子关系的就可以用new,然后定义他的父级,没有父子关系用new后一定要delete否则就是内存泄漏
彩阳
2013-08-01
打赏
举报
回复
控件还是在堆中开辟空间吧,否则如果加入了Qt父子对象系统,就有可能出现delete一个栈中的对象错误。此外Qt智能指针作用于Qt内置类中还必须注意避免雷区。下面是我写的日志:
http://blog.csdn.net/gamesdev/article/details/8724090
jdwx
2013-08-01
打赏
举报
回复
Qt一般可视的控件用new便于Qt自动管理内存,其它的都可以。
accsoar
2013-08-01
打赏
举报
回复
这个,都行,觉得怎么用好怎么用,看具体情况 你还是再学学C普拉斯普拉斯吧
QT
5开发||01、灵魂三问:什么是
QT
?为什么要
使用
QT
? 如何
使用
QT
?
前言 之前我们对GUI的概念和用途进行了理解和
使用
,对命令行应用程序和图形界面GUI应用程序进行了对比和
使用
场景的分析。 现在我们开始步入
QT
的大门,来理解
QT
是什么?
使用
QT
的优缺点,以及如何
使用
QT
? 一、
QT
是什么? 1、GUI角度
Qt
是一个跨平台的 C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。 它是完全面向
对象
的,很容易扩展, 并且允许真正的组件编程。
Qt
也是一个跨平台应用程序和 UI 开发框架。
使用
Qt
只需一次性开发应用程序, 无须重新编写源代
Qt
之
new
对象
何时销毁
疑惑 在
类
的构造函数中,
使用
new
创建了一个button, 当关闭这个窗口时,
new
出来的内存会释放吗? MyWindow::MyWindow(QWidget *parent, const char *name,WFlags f) : QMainWindow(parent,name,f | WDestructiveClose) { QPushButton *button =
new
QPushButton("hello",this); }
对象
树机制
QT
的父子
QT
中如何确定
new
对象
是否要释放
##1.前言 我们都知道C++中的
new
和delete是
需要
成对存在的,否则会导致内存泄漏。但是,在
QT
中,有的时候我们
new
出来的
对象
,并不
需要
delete也会释放掉。那么,究竟什么时候
需要
手动释放,什么时候不
需要
释放,交给
QT
自动释放呢? ##2.
QT
的自动释放机制 在
QT
基础 - QObject简介一文中提到: QObject在
对象
树中组织自己。当你用另一个
对象
作为父
对象
创建一个QObject时,
对象
将自动添加到父
对象
的children()列表中。父母拥有
对象
的所有权;即它会自动删除其子析构器中的
QT
中手动释放堆中的
对象
(
new
出来的)
Qt
内存自动释放有两个前提条件:1. 必须是QObject的派生
类
2.必须指定了parent
对象
即:
Qt
中 父亲被删除的时候会自动销毁他的孩子。所以如果
New
出来的并且没有父亲。那么则
需要
手动删除它。
需要
,不然那块空间就一直占用了 QLabel* lb=
new
QLabel(); delete (lb); if(lb==NULL) { } delete(this);//this是继承Qweiget基
类
的子控件,当
new
出来此控件后,想要彻底释放此子控件,需...
c++中
对象
new
与不
new
的区别
转:
new
创建
类
对象
,
使用
完后需
使用
delete删除,跟申请内存
类
似。所以,
new
有时候又不太适合,比如在频繁调用场合,
使用
局部
new
类
对象
就不是个好选择,
使用
全局
类
对象
或一个经过初始化的全局
类
指针似乎更加高效。 一、
new
创建
类
对象
与不
new
区别 下面是自己总结的一些关于
new
创建
类
对象
特点:
new
创建
类
对象
需要
指针接收,一处初始化,多处
使用
new
创建
类
对象
使用
完需delete销毁
new
...
Qt
16,215
社区成员
26,594
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章