类的构造方法,私有属性赋值、取值,析构函数作用以及执行顺序

类的构造方法,私有属性赋值、取值,析构函数作用以及执行顺序

1.创建一个类 里面有对应的函数
class Line
{
public:
    void setLenth(double len);
    double getLenth(void);

    //类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
    Line();             //无参构造
    Line(double len);   //有参构造  创建对象时就会给对象赋初始值

    //类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。
    ~Line();    //析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
    
    void plant();   //测试展示
//属性
private:
    double lenth;
};
2.对应的源文件函数实现
void Line::setLenth(double len)
{
    this->lenth = len;
}

double Line::getLenth()
{
    return this->lenth;
}

Line::Line()
{
    qDebug() << "object is beging creat1" ;
}

Line::Line(double len)
{
    this->lenth = len;
    qDebug() << "object is beging creat2 length = " << len;
}

Line::~Line()
{
    qDebug() << "object is beging delete" << this->getLenth() ;
}

void Line::plant()
{
    Line line;
    line.setLenth(10.0);
    qDebug() << "line's lenth is " << line.getLenth();
    Line line2(5.0);
    qDebug() << "line2's lenth is " << line2.getLenth();
}
3.在main源文件导入这个类的头文件 并且使用
#include "mainwindow.h"
#include "line.h"
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

   Line line;
   line.plant();
   
    w.show();
    return a.exec();
}
4.运行后看一下打印结果

在这里插入图片描述
关闭窗口后,还会来一句:
object is beging delete 7.09327e+141在这里插入图片描述

5.顺序:

可以看得出
1.main里面的构造函数
2.调用了plant() 后
3.第一个line的构造函数
4.打印语句
5.第二个line的构造函数
6.打印语句
7.第二个line的析构函数
8.第一个line的析构函数
关闭页面后
9.main里面line的析构函数

谢谢~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光顶术士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值