Qt使用类的对象,什么情况下带*,什么情况下需要new?

时间:2023-01-08 20:39:36
一直有个疑问,Qt使用类的对象,什么情况下带*,什么情况下需要new?

例如:QPalette myPalette,定义一个QPalette对象没有带* ,也没有new
      QPushButton *pushButton= new QPushButton ,这个又要带。 

6 个解决方案

#1


这个,都行,觉得怎么用好怎么用,看具体情况

你还是再学学C普拉斯普拉斯吧

#2


Qt一般可视的控件用new便于Qt自动管理内存,其它的都可以。

#3


控件还是在堆中开辟空间吧,否则如果加入了Qt父子对象系统,就有可能出现delete一个栈中的对象错误。此外Qt智能指针作用于Qt内置类中还必须注意避免雷区。下面是我写的日志:
http://blog.csdn.net/gamesdev/article/details/8724090

#4


有父子关系的就可以用new,然后定义他的父级,没有父子关系用new后一定要delete否则就是内存泄漏

#5


同意accsoar的意见。楼主,这个问题其实跟Qt没啥关系。跟c++有关系。建议先看看入门的c++ primier

#6


简单一点,qt的类,从QObject继承的一般用new,其它一般直接构造

#1


这个,都行,觉得怎么用好怎么用,看具体情况

你还是再学学C普拉斯普拉斯吧

#2


Qt一般可视的控件用new便于Qt自动管理内存,其它的都可以。

#3


控件还是在堆中开辟空间吧,否则如果加入了Qt父子对象系统,就有可能出现delete一个栈中的对象错误。此外Qt智能指针作用于Qt内置类中还必须注意避免雷区。下面是我写的日志:
http://blog.csdn.net/gamesdev/article/details/8724090

#4


有父子关系的就可以用new,然后定义他的父级,没有父子关系用new后一定要delete否则就是内存泄漏

#5


同意accsoar的意见。楼主,这个问题其实跟Qt没啥关系。跟c++有关系。建议先看看入门的c++ primier

#6


简单一点,qt的类,从QObject继承的一般用new,其它一般直接构造