QT Day2!!1.登录跳转界面 2.枚举类型 3.左值与右值4.面试问题

1.作业登录跳转界面

//form.h
#ifndef FORM_H
#define FORM_H#include <QWidget>namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent = nullptr);~Form();public slots:void jump_slot();private:Ui::Form *ui;
};#endif // FORM_H//widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void jump();    //自定义跳转信号private slots:void on_jump_clicked();    //跳转按钮的点击信号private:Ui::Widget *ui;
};
#endif // WIDGET_H//form.cpp
#include "form.h"
#include "ui_form.h"Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);
}Form::~Form()
{delete ui;
}
void Form::jump_slot()
{this->show();
}//widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_jump_clicked()
{emit jump(); //发射跳转信号this->close();
}//main.cpp
#include "widget.h"
#include "form.h"   //第二个界面的头文件#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Form f;//将第一个界面的信号函数与第二个界面的槽函数连接QObject::connect(&w,&Widget::jump,&f,&Form::jump_slot);return a.exec();
}

改变现象:

2.枚举类型

#include <iostream>using namespace std;enum Color       //枚举是解决魔鬼数字的问题,枚举类型都是整数
{red,    //red=100,red被赋特殊值后,后面的以这个初始值为基准依次累加//red没有被赋特殊值时默认值为0,按顺序往下累加orange,yellow,green,blue = 104,  //从blue往下是以104按顺序往下排序pink,purple,
};int main()
{int num;cout << "请输入num的值:" << endl;cin >> num;enum Color c1 = red;cout << "c1 = " << c1 << endl;if(num == 104){cout << "blue" << endl;}return 0;
}

3.左值与右值

#include <iostream>using namespace std;int main()
{int num = 520;int &r1 = num;  //左值引用 左值引用必须引用有内存空间的cout << "r1 = " << r1 << "   &r1 = " << &r1 << "   num = " << num << "   &num = " << &num << endl;int &&r2 = 1314;//右值引用  &&会在堆区给1314申请一个空间cout <<"r2 = " << r2 << "  &r2 = " << &r2 << endl;//int &&r3 = num;   //错的,num是一个左值,不能被 右值引用int &&r3 = move(num);   //用move()函数可以把num强制转化为右值引用,继而可以通过右值引用使用该值//所以r3的地址与num一致,并没有申请新的空间cout <<"r3 = " << r3 << "  &r3 = " << &r3 << endl;return 0;
}

 运行结果:

 4.面试

1.多态、虚函数、纯虚函数

答:多态广义上有静态多态、动态多态(运行时)

静态多态:函数重载、运算符重载

函数重载:函数重载,是实现静态多态的一种方式,能够实现“一名多用”。

                  函数重载是指函数名相同,形参个数不同或者类型不同,但在同一作用域下。

运算符重载:运算符重载可以让运算符有特殊的意义,应用于更复杂的场景,作用于类对象之间,满足不同的运算需求。

不能重载的运算符

  • 成员运算符 .
  • 成员指针运算符 ->
  • 作用域限定符 ::
  • 计算字节大小 sizeof()
  • 三目运算符 ? :

动态多态:能够实现“一名多用”

        父类的指针或者引用,指向或初始化子类的对象,调用子类对父类重写的函数,进而展开子类的功能。

需要继承和虚函数

  • 类中有虚函数时,类里就会有一个虚指针,虚指针也满足继承
  • 虚指针在类的最前面,虚指针指向了一个虚函数表,虚函数表里记录了虚函数,包括子类对父类重写的函数。
  • 虚指针和虚函数表是实现多态的重要机制。

纯虚函数:没有实际的定义意义,没有实例化的意义,可以设置为纯虚函数,可以在子类里实现。

包含纯虚函数的类称为抽象类,不能实例化。

2.将:“引用”作为函数参数有哪些特点?

由于引用和目标占用同一块空间,在作为参数传递时,不会开辟新的空间,所以效率高,并且传引用实际上就是传变量的空间,所以也没有值传递和地址传递的区别

  1. 引用必须初始化,指针可以不初始化(野指针),指针可以指向NULL,引用不能为空,引用一定有明确的目标
  2. 指针可以修改指向,引用一旦指定目标,不能再修改
  3. 指针在使用前,需要做合理性检查,但是引用不需要
  4. 指针会另外开辟空间,但是引用不开辟空间,和目标使用同一片空间
  5. 指针的大小是8byte/4Byte,引用的大小和目标的大小一致
  6. 有多级指针,没有多级引用(因为引用不是数据类型,指针是数据类型)
  7. 有指针数组,但是没有引用数组

3.结构体与联合体有哪些区别?

相同点:结构体与联合体都是构造数据类型

可以存放不同的数据类型。

不同点:计算大小的方式不同、对齐方式不一样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DB】Windows 环境修改MySql 8.0.x 密码

目录 一. 问题 二. 说明 三. 步骤 3.1 账户 3.2 服务 3.3 文件 四. 参考 一. 问题 好久没装数据了, 最近导入数据, 次哦&#xff0c;密码忘记了&#xff0c;网上搜了搜也不靠谱; 去管网上扒拉看看如何修改吧? 二. 说明 使用超级管理员模式, 看下本机 MySQL 版本号 $…

LeetCode(力扣)78. 子集Python

LeetCode78. 子集 题目链接代码 题目链接 https://leetcode.cn/problems/subsets/description/ 代码 class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:result []self.backtracking(nums, result, 0, [])return resultdef backtracking(self, nu…

WebGIS外包开发流程

WebGIS开发流程需要综合考虑前端和后端开发、地理信息数据处理、用户需求和安全性等多个方面。成功的WebGIS应用程序需要不断地进行更新和维护&#xff0c;以适应变化的需求和技术。WebGIS开发是一个复杂的过程&#xff0c;通常包括以下主要步骤。北京木奇移动技术有限公司&…

[移动通讯]【Carrier Aggregation-3】【5G】

前言&#xff1a; 参考&#xff1a; 5G Mobile Communications&#xff1a;《Carrier Aggregation in 5G》 目录&#xff1a; 1&#xff1a; carrier Allocation Schemes 2&#xff1a; 网络结构 3&#xff1a; LTE CA 4: 5G CA 一 Carrier Allocation Schemes CA 主要作用…

Vue2项目练手——通用后台管理项目第六节

Vue2项目练手——通用后台管理项目 用户管理页table表格获取表格数据目录列表user.jsmock.jsindex.jsUsers.vue 新增和编辑功能Users.vue 删除功能使用的组件Users.vue 用户管理页 table表格 使用的组件和前面的表格使用的一致。 获取表格数据 目录列表 user.js import Mo…

2023高教社杯数学建模C题思路模型 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c; 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

Redis简介

简单来说 redis 就是一个数据库&#xff0c;不过与传统数据库不同的是 redis 的数据是存在内存中的&#xff0c;所以读写速度非常快&#xff0c;因此 redis 被广泛应用于缓存方向。另外&#xff0c;redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。…

内量子效率和外量子效如何测试?

碳纳米点&#xff08;CarbonNanodots&#xff09;指的是粒径尺寸小于10nm&#xff0c;并且具有荧光性质的碳球形或准球型纳米材料。和传统的金属、半导体量子点相比&#xff0c;碳纳米点具备不可比拟的优点&#xff0c;例如制备简单、成本低廉、水溶性良好、生物相容性高、毒性…

初步了解android如何锁键

百年三万六千日&#xff0c;光阴只有瞬息间。 手机下面的三个图形&#xff0c;正方形&#xff0c;园形&#xff0c;三角形分别的什么建&#xff1f;都起到什么功能&#xff1f; 三角形的那个叫返回键&#xff0c;就是可以返回你的上一个操作; 圆形是HOME键&#xff0c;按一下可…

LeetCode 23 合并 K 个升序链表

LeetCode 23 合并 K 个升序链表 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/merge-k-sorted-lists/description/ 博主Github&#xff1a;https://github.com/GDUT-Rp/LeetCode 题目&#xff1a; 给你一个链表数组…

【算法专题突破】双指针 - 三数之和(7)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;15. 三数之和 - 力扣&#xff08;Leetcode&#xff09; 题目就是要找出和为0的不重复的三元组&#xff0c; 注意三元组的每个元素是得不同的位置&#xff0c;那不重复又…

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

文章目录 前言A - Dijkstra Algorithm0x00 算法题目0x01 算法思路0x02 代码实现 B - 最长路0x00 算法题目0x01 算法思路0x02 代码实现 C - 二分图最大匹配0x00 算法题目0x01 算法思路0x02 代码实现 D - 搭配飞行员0x00 算法题目0x01 算法思路0x02 代码实现 E - The Perfect Sta…

Discourse 应该保留多少备份

近期&#xff0c;我们在对 Discourse 进行恢复的时候&#xff0c;我们发现新的备份可能会导致不是所有的数据都能恢复到服务上。 这时候我们应该考虑让 Discourse 保留多少备份的问题&#xff1f; 在默认情况下&#xff0c;我们设置 Discourse 的备份是保留 5 个。这是官方的…

ARM/X86工业级数据采集 (DAQ) 与控制产品解决方案

I/O设备&#xff0c;包括信号调理模块、嵌入式PCI/PCIE卡、便携式USB模块、DAQ嵌入式计算机、模块化DAQ系统&#xff0c;以及DAQNavi/SDK软件开发包和DAQNavi/MCM设备状态监测软件。 工业I/O产品适用于各种工业自动化应用&#xff0c;从机器自动化控制、测试测量到设备状态监测…

第 361 场周赛 (AC 1,第二题过了但是考试结束了)

7020.统计对称整数的数目 思路一&#xff1a;指定区间统计对称整数 1.遍历区间2.判断该数对不对称 对称逻辑&#xff1a;首尾同时开始遍历&#xff0c;并且同时累加为两个数&#xff0c;最后判断两个数是否相等 class Solution { public:bool judge(int num){if(num<10) …

IDEA Java1.8通过sqljdbc4连接sqlserver插入语句

1. 下载sqljdbc4:https://mvnrepository.com/artifact/com.microsoft.sqlserver.jdbc/sqljdbc4/4.0 下载后在IDEA放入仓库内&#xff0c;可以放在resources下&#xff0c;右键“add as library”。 2. 在控制面板中开启Telnet客户端&#xff0c;默认是不开启的。 若报错“ ja…

4.矩阵的几何意义、变基与迹

文章目录 变基操作与矩阵矩阵的迹几何意义矩阵迹的几条性质 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 变基操作与矩阵 我们知道空间中一点的坐标可以表示以原点为起点以该点为终点的向量。 以二维平面为例&#xff0c;如下图 选取…

Car Window Control Reset

大众汽车窗口自动升降失效&#xff0c;重置&#xff1a; 扣住5秒&#xff0c;重启汽车&#xff0c;试一下车钥匙&#xff0c;和再重试这个按钮&#xff0c;扣一下试一试

【LeetCode-中等题】47. 全排列 II

文章目录 组合并集问题汇总&#xff1a;题目方法一&#xff1a;递归回溯去重 组合并集问题汇总&#xff1a; 1、子集去重版本 2、组合非去重版本 3、子集非去重版本 题目 相比较46题&#xff1a;不需要去重&#xff1a;【LeetCode-中等题】46. 全排列 需要做出的改变就是&a…

在学习DNS的过程中给我的启发

在国内&#xff0c;关于DNS相关的话题一直络绎不绝&#xff0c;比如DNS根服务器为什么中国没有&#xff0c;还有Anycast BGP实现负载&#xff0c;为什么DNS只有13个&#xff0c;还有DNS over HTTPS 和 DNS over TLS的优劣等等问题&#xff0c;接下来我会找出几个一一说一下其中…