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.rhkb.cn/news/119116.html

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

相关文章

使用Python爬虫采集网络热点

在当今信息爆炸的时代&#xff0c;了解网络热搜词和热点事件对于我们保持时事敏感性和把握舆论动向非常重要。在本文中&#xff0c;我将与你分享使用Python爬虫采集网络热搜词和热点事件的方法&#xff0c;帮助你及时获取热门话题和热点新闻。 1. 网络热搜词采集 网络热搜词是人…

SSM框架-Spring框架核心知识梳理

目录 一、SpringIoC 1.1认识SpringIoC容器 1.2基于xml配置SpringIoC容器 1.3基于xml配置下Bean的生命周期和作用域 1.4 基于xml与注解配置SpringIoC容器 1.5 基于完全注解类配置SpringIoc容器 二、SpringAop面对切面编程 2.1认识SpringAop面向切面编程 2.2SpringAop基…

Windows和Linux环境中安装Zookeeper具体操作

1.Windows环境中安装Zookeeper 1.1 下载Zookeeper安装包 ZooKeeper官网下载地址 建议下载稳定版本的 下载后进行解压后得到如下文件&#xff1a; 1.2 修改本地配置文件 进入解压后的目录&#xff0c;将zoo_example.cfg复制一份并重命名为zoo.cfg,如图所示&#xff1a; 打…

AJAX学习笔记2发送Post请求

AJAX学习笔记1发送Get请求_biubiubiu0706的博客-CSDN博客 继续 AJAX发送POST请求 无参数 测试 改回来 测试 AJAX POST请求 请求体中提交参数 测试 后端打断点 如何用AJAX模拟form表单post请求提交数据呢&#xff1f; 设置请求头必须在open之后,send之前 请求头里的设置好比…

Windows配置SonarQube代码审查工具详细步骤(附带IDEA SonarLint插件使用)

文章目录 环境说明以及准备一. SonarQube的下载与安装二. 添加SonarQube项目三. 使用Maven命令上传代码到SonarQube四. IDEA安装SonarLint插件 环境说明以及准备 本篇博客使用的SonarQube版本为9.8&#xff0c;注意JDK 1.8已经不能支持 NameVersionDownLoad LinkSonarQube9.8…

org.mockito:mockito-core 组件安全漏洞及健康度分析

组件简介 维护者mockito组织许可证类型MIT首次发布2008 年 4 月 29 日最新发布时间2023 年 8 月 27 日GitHub Star14159GitHub Fork2478依赖包24,748依赖存储库145,258 org.mockito:mockito-core是一个流行的 Java 模拟框架&#xff0c;它提供了一个简洁的 API 来创建和使用模拟…

设计模式-7--代理模式(Proxy Pattern)

一、什么是代理模式&#xff08;Proxy Pattern&#xff09; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理&#xff09;充当另一个对象&#xff08;真实对象&#xff09;的接口&#xff0c;以控制对该对象的…

函数指针与std::function<>对回调函数的实现与性能分析

函数指针与std::function<>都可以作为函数形参&#xff0c;通过接受另一个函数的地址来实现回调函数的功能&#xff0c;但是它们之间的性能差异非常明显。下面分别介绍对回调函数的实现与各自的性能分析。 函数指针与std::function<>对回调函数的实现 先在类中分…

PXE批量装机

目录 前言 一、交互式 &#xff08;一&#xff09;、搭建环境 &#xff08;二&#xff09;、配置dhcp服务 &#xff08;三&#xff09;、FTP服务 &#xff08;四&#xff09;、配置TFTP服务 &#xff08;五&#xff09;、准备pxelinx.0文件、引导文件、内核文件 &#…

l8-d5 字节序

一、主机字节序和网络字节序 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序&#xff0c;分为&#xff1a; 大端字节序 (Big endian) 小端字节序(Little endian) 示例&#xff1a;0x11223344 一般主机当中使用小端字节序 网络通信当中必须使用大端字…

朝夕光年游戏自动化测试实践

朝夕光年是面向全球用户与开发者的游戏研发与发行业务品牌&#xff0c;致力于服务全球玩家&#xff0c;帮助玩家在令人惊叹的虚拟世界中一起玩耍与创造。 在游戏的研发过程中&#xff0c;游戏自动化一直是开展难度较大的工程&#xff0c;具体包括机房机架、设备调度、软件框架、…

【Java 基础篇】Java StringBuffer详解:更高效的字符串处理

在Java编程中&#xff0c;字符串是一个常见的数据类型&#xff0c;用于存储文本信息。然而&#xff0c;与字符串相关的操作可能会导致性能问题&#xff0c;因为字符串是不可变的&#xff0c;每次对字符串进行操作都会创建一个新的字符串对象。为了解决这个问题&#xff0c;Java…

【C++】异常处理详解

本篇文章重点将会对C中的异常的相关处理操作进行详解。希望本篇文章的内容会对你有所帮助。 目录 一、C语言的异常处理 二、C异常 2、1 异常概念 2、2 异常的使用 2、3 异常类 2、4 异常的重新抛出 三、异常的安全与规范 3、1 异常的安全 3、2 异常的规范 四、异常的优缺点 &am…

深入了解Kubernetes(k8s):安装、使用和Java部署指南(持续更新中)

目录 Docker 和 k8s 简介1、kubernetes 组件及其联系1.1 Node1.2 Pod1.3 Service 2、安装docker3、单节点 kubernetes 和 KubeSphere 安装3.1 安装KubeKey3.2 安装 kubernetes 和 KubeSphere3.3 验证安装结果 4、集群版 kubernetes 和 KubeSphere 安装5、kubectl 常用命令6、资…

【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】

文章目录 说明细节一&#xff1a;首页滑动到底部&#xff0c;需要查询下一页的商品界面预览页面实现 细节二&#xff1a;当页面滑动到下方&#xff0c;出现一个回到顶端的悬浮按钮细节三&#xff1a;商品分列说明优化前后效果对比使用回溯算法实现ControllerService回溯算法 优…

git企业级使用

1.初始Git 1.1创建Git仓库 要提前说的是&#xff0c;仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制&#xff0c;就必须先创建⼀个仓库出来。创建⼀个Git本地仓库对应的命令为 git init &#xff0c;注意命令要在⽂件⽬录下执⾏&#xff0c;例如&#xff1a;…

docker安装gitlab

安装gitlab sudo docker run --detach \--hostname gitlab \--publish 543:443 --publish 90:80 --publish 222:22 \ --name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:…

RTPEngine 通过 HTTP 获取指标的方式

文章目录 1.背景介绍2.RTPEngine 支持的 HTTP 请求3.通过 HTTP 请求获取指标的方法3.1 脚本配置3.2 请求方式 1.背景介绍 RTPEngine 是常用的媒体代理服务器&#xff0c;通常被集成到 SIP 代理服务器中以减小代理服务器媒体传输的压力&#xff0c;其架构如下图所示。这种使用方…

使用Docker安装和部署kkFileView

&#x1f388;1 参考文档 kkFileView官方文档 &#x1f680;2 安装kkFileView 拉取Redis镜像。 docker pull keking/kkfileview启动docker容器。 docker run -it -d -p 8012:8012 keking/kkfileview --restart always解释&#xff1a; docker run redis # 从kkfileview镜像运行…

计算机视觉的应用12-卷积神经网络中图像特征提取的可视化研究,让大家理解特征提取的全过程

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用12-卷积神经网络中图像特征提取的可视化研究&#xff0c;让大家理解特征提取的全过程。 要理解卷积神经网络中图像特征提取的全过程&#xff0c;我们可以将其比喻为人脑对视觉信息的处理过程。就像…