• 4647阅读
  • 7回复

QT或C++中类对象与类指针 [复制链接]

上一主题 下一主题
离线zl39049979
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-24
在QT的教材中常常一个类对象有时直接用他的指针定义比如,QWidget* a=new QWidget;有时却用类对象 QLabel a(parent),请问有什么区别和好处吗?我知道用指针可以在析构的时候直接DELETE
离线fanglin00
只看该作者 1楼 发表于: 2010-03-25
QWidget* a=new QWidget;发生在运行时候
QLabel a(parent),发生在 编译的时候
晓寒深处,相对浴红衣!
离线zl39049979
只看该作者 2楼 发表于: 2010-03-25
引用第1楼fanglin00于2010-03-25 09:42发表的  :
QWidget* a=new QWidget;发生在运行时候
QLabel a(parent),发生在 编译的时候

3Q~~~~~~~~~~~~~~
离线yangfanxing
只看该作者 3楼 发表于: 2010-03-25
引用第1楼fanglin00于2010-03-25 09:42发表的  :
QWidget* a=new QWidget;发生在运行时候
QLabel a(parent),发生在 编译的时候

这是什么说法呢?
PHPWind好恶心。。。不想看这种界面。。。
离线cspp

只看该作者 4楼 发表于: 2010-03-26
我糊涂了
离线steinlee

只看该作者 5楼 发表于: 2010-03-27
引用楼主zl39049979于2010-03-24 15:57发表的 QT或C++中类对象与类指针 :
在QT的教材中常常一个类对象有时直接用他的指针定义比如,QWidget* a=new QWidget;有时却用类对象 QLabel a(parent),请问有什么区别和好处吗?我知道用指针可以在析构的时候直接DELETE


类指针 use heap memory
类对象 use stack memory

Always use 类指针 for Qt GUI components.
QWidget* a=new QWidget;
QLabel * a =  new QLabel(parent);

the reason is that Qt has garbage collector which helps clear heap memory.
You do not need to do the delete. Using 类对象 in Qt for GUI components
can cause crashes.
Looking for remote C/C++ and Qt 兼职
离线aaronhou
只看该作者 6楼 发表于: 2010-03-27
同问啊~~~
离线zl39049979
只看该作者 7楼 发表于: 2010-03-28
谢谢各位,其实我没有理解好程序运行的内存结构,通过看资料理解了
快速回复
限100 字节
 
上一个 下一个