从Qt简单的例子理解析构

2023-10-29

看下面一段代码

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}
  • 在构造函数后面的”冒号”: 是初始化作用,在这里初始化了继承QMainWindow的构造函数的参数。
  • ui(new Ui::MainWindow), 是创建ui的实例。
  • 两个分别是构造函数与析构函数

下面言归正传,说一说析构

析构函数

析构函数和构造函数是一对。构造函数用于创建对象,而析构函数是用来撤销对象。
简单的说:一个对象出生的时候,使用构造函数,死掉的时候,使用析构函数。

如果我们写的类是一个没有那么复杂的类,我们可以不需要写析构函数。如果一个类只要有这些情况:打开文件、动态分配内存、连接数据库。
简单的说:就是只要构造函数里面有了 new 这个关键词,我们就需要自己手动编写析构函数

析构函数何时被调用

当对象被释放的时候,对象会被析构调用。
Qt内存自动释放
Qt内存自动释放有两个前提条件:

  • 必须是QObject的派生类
  • 必须指定了parent对象

即:Qt 中 父亲被删除的时候会自动销毁他的孩子。 所以。如果New出来的并且没有父亲。那么则需要手动删除它。。比如ui(new Ui::MainWindow) ,没有指定父,也不是QObject的派生类,需要手动释放

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从Qt简单的例子理解析构 的相关文章

  • c# cst_CST407教学大纲-通过.NET学习C#

    c cst OREGON INSTITUTE OF TECHNOLOGY 俄勒冈理工学院 Software Engineering Technology 软件工程技术 CST 407 Seminar C and the NET Framew
  • unity3D实现多点触碰

    实现多点触碰是利用input这个类里面的方法实现的 从edit project settings input就可以看到input能够得到的轴 想要读取轴向可以使用Input GetAxis方法获取下列默认轴 Horizontal 和 Ver
  • 神秘又熟悉的main函数

    目录 1 概述 2 程序编译 3 揭开最后的面纱 1 概述 学习C语言的同学都知道main函数 并且这是我们接触的第一个函数 但是很少有人去深究C语言为什么都是从main函数执行的 今天我们就来深入了解下 2 程序编译 C语言生成可执行文件
  • HTML5语义元素

    目录 什么是语义元素 浏览器支持 HTML5 中新的语义元素 HTML5 语义元素 HTML5元素 实例 HTML5元素 实例 嵌套语义元素 HTML5元素 实例 HTML5元素 实例 HTML5元素 实例 HTML5元素 实例 HTML5
  • 凸优化第三章凸函数 3.1基本性质和例子

    3 1基本性质和例子 定义 扩展值延伸 一阶条件 二阶条件 例子 下水平集 上境图 Jensen不等式及其扩展 不等式 定义 函数f是凸函数 当f的定义域S是凸集 且 严格凸函数 从几何上来看 如下图 函数f上的任意两点之间的弦都在函数图像
  • 解决本地浏览器运行项目时的跨域问题Access to XMLHttpRequest at ‘file:///C:/Users/Len/Desktop/%E5%8F%AF%E4%BF%AE%E6%94%

    解决本地浏览器运行项目时的跨域问题 Access to XMLHttpRequest at file C Users Len Desktop E5 8F AF E4 BF AE E6 94 B9 E9 85 8D E7 BD AE dist
  • leetcode 路径总和 -- 递归

    0 题目描述 leetcode原题链接 112 路径总和 1 递归解法 假定从根节点到当前节点的值之和为 val 我们可以将这个大问题转化为一个小问题 是否存在从当前节点的子节点到叶子的路径 满足其路径和为 sum val 不难发现这满足递
  • 【OpenCV】噪声的添加和过滤

    1 简介 下面简单介绍两种图像噪声 即椒盐噪声和高斯噪声 1 椒盐噪声 椒盐噪声也称脉冲噪声 它是一种随机出现的白点或者黑点 可能是亮的区域有黑色像素或是在暗的区域有白色像素 或是两者皆有 图像模拟添加椒盐噪声是通过 随机获取像素点 并设置
  • Android 12上全新的应用启动API,适配一下?

    今日科技快讯 近日 谷歌宣布 将在欧洲市场上销售的Android手机中免费添加更多移动搜索应用 欧洲Android用户可以通过全新的 搜索引擎选项 来选择并设置自己设备上的默认搜索引擎 作者简介 本篇文章来自TechMerger同学的投稿
  • mysql动态ip域名连接_用本地动态IP连接本地mysql

    一个问题已经困扰了我很久的问题今天终于解决了 在用C 连接mysql时 用本地的动态IP加端口号连接本地的数据库mysql real connect conn 192 168 223 128 root mysql Project 3306
  • PCA的数学原理(非常值得阅读)!!!!

    PCA Principal Component Analysis 是一种常用的数据分析方法 PCA通过线性变换将原始数据变换为一组各维度线性无关的表示 可用于提取数据的主要特征分量 常用于高维数据的降维 网上关于PCA的文章有很多 但是大多
  • 统计字符串内某个字符出现的次数

    假如有一个字符串 cabcdasgcjaieyakxhanzgajgaa 我们要统计这个字符串里字符 a 出现的位置以及出现的次数 大致思路 先利用 indexOf 判断出该字符第一次出现的位置 只要其返回结果不等于 1 就继续往后查找 但
  • Linux基础(较全)

    Linux 0 目录 文章目录 Linux 0 目录 1 Linux简介 1 1 Linux是什么 1 2 Linux发行版 1 3 LInux应用领域 1 4 Linux vs Windows 2 Linux 虚拟机 安装 2 1 系统分
  • 数据库表结构设计方法及原则(li)

    数据库设计的三大范式 为了建立冗余较小 结构合理的数据库 设计数据库时必须遵循一定的规则 在关系型数据库中这种规则就称为范式 范式是符合某一种设计要求的总结 要想设计一个结构合理的关系型数据库 必须满足一定的范式 在实际开发中最为常见的设计
  • Java入门

    Java入门 Java 入门 主要内容 Java的地位 Java诞生 Java的特点 安装JDK 简单的Java应用程序 重点与难点 重点 Java平台无关性 Java程序的结构 难点 Java程序的开发过程 Java之父与Java的诞生
  • 探索性数据分析-如何描述业务量数据

    探索性数据分析 如何描述业务量数据 描述业务量的特征 均值 标准差 相关系数 均值代表的是集中趋势 整体的趋势 整体发展方向 整体水平 标准差代表的是离中趋势 描述事物的波动程度 在一定程度上也代表着风险 相关系数代表的是相关分析 代表的是
  • 刷脸支付有深度整合垂直领域的商业价值

    移动支付和银行卡支付没有办法确定使用者到底是谁 因为可以和家人等共同使用 刷脸支付可以确定消费实体是谁 定位到具体人确定数据标签 新零售从业者认为 刷脸支付除了提供更便捷的支付服务外 还可以提供更多的商业数据用于精细化经营 从垂直领域来看
  • 从Qt5的改变看最佳头文件包含风格?QT5找不到#include头文件在哪里

    老版本 C C code 1 2 include
  • Polkit权限提升漏洞(CVE-2021-4034)利用及修复

    Polkit本地权限提升漏洞 CVE 2021 4034 利用及修复 文章目录 Polkit本地权限提升漏洞 CVE 2021 4034 利用及修复 漏洞说明 危害等级 影响版本 修复版本 漏洞利用 漏洞修复 升级polkit版本 临时修复
  • WebSocket协议状态码1005: 理解、应用与解决方案

    WebSocket协议状态码1005 理解 应用与解决方案 引言 WebSocket协议是一种在Web应用程序中实现双向通信的协议 与传统的HTTP协议不同 WebSocket协议允许服务器主动向客户端推送数据 而不需要客户端发送请求 在W

随机推荐

  • TypeScript 元组类型

    TypeScript 语言中 数组中的元素一般只能是由相同数据类型组成 any 除外 如果我们想要存储不同类型的元素 则可以使用元组 TypeScript 中的元组 Tuple 从外形上来看和数组相差不多 但是元组中允许存储不同类型的元素
  • AD18画元器件封装

    AD18画元器件封装 1 在创建好的工程旁边右键给工程添加新的PCB libriary 2 在PCB libriary界面点击工具 gt 元器件向导 然后点击Next 3 可以看到不同类型元器件 可以根据自己需求选择 我选择第二个电容 单位
  • rt-thread系列文章目录

    rt thread系列文章目录 本文是rt thread系列文章目录 后续关于rt thread的更新都会添加到此文内 实战篇 rt thread 生成工程模板 rt thread fal移植 内核篇 rt thread 内存管理 内存堆
  • STM32 USB虚拟串口通信

    目录 一 使用STM32 HAL库配置 选择USB从机模式 添加USB库并选择虚拟串口模式 二 HAL库USB驱动函数介绍 三 驱动函数编写 一 使用STM32 HAL库配置 选择USB从机模式 添加USB库并选择虚拟串口模式 二 HAL库
  • SVN下载、安装、配置及使用方法

    文章目录 SVN是什么 相关概念 为什么需要SVN SVN的特点 TortoiseSVN VisualSVN Subversion 以及 VisualSVN Server的区别 为什么不直接使用Subversion SVN下载 SVN服务端
  • 策略模式与外观模式

    1 策略 定义不同的算法族 并且之间可以互相替换 让算法的变化独立于使用算法的客户 以动态的改变对象的行为 2 例子 随机生成宠物 并统计各种宠物生成数量 a 抽象类 PetCreator 用于随机生成宠物 package context
  • 【毕设中期报告总结】MMGEN-FaceStylor的环境配置总结

    MMGEN FaceStylor的环境配置总结 0 引言 1 Python环境配置 2 安装步骤 2 1 创建虚拟环境 2 2 安装MMCV和MMGEN 2 3 克隆存储库并准备数据和权重 3 Play with MMGEN FaceSty
  • 【Keil编译问题】RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT

    Keil编译问题 RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT Keil编译信息提示内容 然而在Keil软件file菜单 license manage许可菜单里面查看信息 又是注册成功
  • automount和autofs

    参考 http hi baidu com dfjlaicqjlbafnd item 6db9af719cc2fe5f0d0a07ac 摘要 automount 和 autofs是易于使用的文件系统管理工具 功能强大 它允许同一台机器上的所有
  • Buck电路的原理及器件选型指南

    Buck电路工作原理 电源闭合时电压会快速增加 当断开时电压会快速减小 如果开关速度足够快的话 是不是就能把负载 控制在想要的电压值以内呢 假设12V降压到5V 也就意味着 MOS管开关需要42 时间导通 58 时间断开 当42 时间MOS
  • 华为机试题(一) 最高分是多少

    老师想知道从某某同学当中 分数最高的是多少 现在请你编程模拟老师的询问 当然 老师有时候需要更新某位同学的成绩 输入描述 输入包括多组测试数据 每组输入第一行是两个正整数N和M 0 lt N lt 30000 0 lt M lt 5000
  • win11怎么更新22H2?不要错过这两个Win11升级22H2的好方法!

    Win11年度大版本更新22H2已经推送 心里是否有些蠢蠢欲动 Windows11系统的22H2版本是微软将大规模更新的系统版本 因此它将对计算机硬件设施有一定的要求 下面小编将为您带来两个个Win11升级22H2的好方法 快来学习一下Wi
  • 在jsp页面的url链接传递中文参数的乱码问题

    已知项目中配置如下 strust2里面 在web xml文件配置了如下
  • 从 Java 到 Go:云服务接口开发详解(AWS、GCP、Azure)

    目录 一 Go 与 Java 简要对比 二 使用 Go 语言开发 AWS 云服务接口 三 使用 Go 语言开发 GCP 云服务接口 lt
  • 在Windows上安装Python

    Windows安装Python 在这篇在Windows上安装Python的文章中 我们将了解在Windows上设置和安装Python是多么容易 它包括几个简单的步骤 让您快速开始使用适用于Windows的Python Python简介 Py
  • 进程间通讯方式以及各个方式的优缺点

    进程间通讯方式以及各个方式的优缺点 进程通信的含义 进程是转入内存并准备执行的程序 每个程序都有私有的虚拟地址空间 由代码 数据以及它可利用的系统资源 如文件 管道 组成 多进程 多线程是windows操作系统的一个基本特征 Linux系统
  • getInstance()方法的作用

    getInstance 方法的作用 getInstance 指实例化 与new类似 但是于new又有很大的区别 实例化 public static DBConnect instance public static DBConnect get
  • 服务器中单个文件夹无法打开,无法在服务器端打开文件

    您将需要一个 App Data 文件夹 该文件夹定义为 IIS 中的虚拟文件夹 或者您的网站项目中名为 App Data 的文件夹 如 表示转到网站的根目录 如果您在 Windows 中查找用户配置文件中存在的 App Data 文件夹 那
  • Day31——单个拦截器中三个方法的执行顺序以及时机

    一 回顾 前面拦截器简介用实现HandlerInterceptor接口实现了自定义拦截器 可以知道它有三个需要实现的方法 分别是preHandle postHandle afterCompletion 二 知识储备 2 1 单个拦截器中三个
  • 从Qt简单的例子理解析构

    看下面一段代码 MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui MainWindow ui gt setupUi this MainWindow MainW