您的位置:首页 > 编程语言 > Qt开发

在QT环境下,实例分析构造函数与析构函数的执行时机

2014-07-29 14:03 721 查看
#include <QDeBug>
//#include <QApplication>
class Box
{
private:
double length;
public:
Box(double lv=1.0):length(lv)//构造函数都没有返回值
{
qDebug() << "constructor called" << endl;
}

~Box()//析构函数
{
qDebug() << "destructor called" << endl;
}
};

int main(int argc,char *argv[])
{
//QApplication a(argc,argv);
Box box(2.3);
while(1)
{
;
}
//return a.exec();
}
/*****************************/
运行程序,会输出:<span style="font-family:'Courier';color:#aa0000;font-size:10pt;">constructor called</span>

说明定义对象时,会调用类的构造函数;后面遇到while函数,程序一直在循环,box对象一直都存在,没有调用析构函数!
/***********************************************************************************************************/

<pre name="code" class="cpp">#include <QDeBug>
//#include <QApplication>
class Box
{
private:
double length;
public:
Box(double lv=1.0):length(lv)//构造函数都没有返回值
{
qDebug() << "constructor called" << endl;
}

~Box()//重写的析构函数(重写是对继承类对基类的重新构造,这里表述不对)
{
qDebug() << "destructor called" << endl;
}
};//万恶的分号,我老是忘掉

int main(int argc,char *argv[])
{
//QApplication a(argc,argv);
Box box(2.3);
//return a.exec();
}

/*****************************/
运行程序,会输出:constructor called destructor called
说明定义对象时,会调用类的构造函数;定义以后,程序将要结束,对象的生存期也到了,所以调用析构函数!
/************************************************************************************************/


 


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息