DAY13
面试遇到的新知识点
char str[10],只有10个字符的空间,但是只能存储9个字符,最后一个字符用来存储终止符'\0'
strlen只会计算'\n',不会计算'\0'
值传递:
void test2(char * str)
{str = "hello\n";
}int main()
{char * str;test2(str);cout << str;return 0;
}
引用传递
void test3(char ** str)
{*str = "hello\n";
}int main()
{char * str;test3(&str);cout << str;return 0;
}
只有传变量的地址对变量进行解引用才能够修改变量的值。
空类里面有什么?
默认成员函数
1.默认构造
2.拷贝构造
3.赋值运算符
4.移动构造
5.移动赋值
6.析构函数
关于最近的一些面试感受
明显感觉好多岗位都交叉着QT,别人问我QT我都答不上来,只能说一个信号槽和用QT封装了简单的网页。
感觉拿不出手,得好好钻研QT了,至少能吹的出来。
c++的排序算法,快排,堆排,后面还要继续更新一个归并排序,将这三个排序算法掌握基本是够用了;
池性组件,后面还要更新内存池,连接池之类的。
然后把基本的排序和池性组件理清楚,边开始学QT边写算法题。目前来看回溯算法算是入门了,但是动态规划,贪心算法和单调栈还是不清楚,争取把这些搞掉。今天开始学习QT,历时一个礼拜应该能小有成就吧。
QT
QT Creator的界面介绍
项目的结构
简单的QT程序
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent),lab(new QLabel("hello",this)), ui(new Ui::MainWindow) {ui->setupUi(this);// 设置标签的位置lab->setGeometry(100,100,200,200);// 设置标签的颜色lab->setStyleSheet("QLabel{background-color:green;color:red}");// 设置字体的大小lab->setFont(QFont("楷书",22)); }
信号槽机制
信号(signal)
信号的本质是事件,信号展现方式就是函数。当一个事件发生之后,则发出一个信号(signal)。
槽(slot)
对信号响应的函数
槽与普通函数的区别:
槽函数可以与一个信号关联,当信号被发射的时候,关联的槽函数被自动执行处理。
信号与槽关联是使用QObject::connect()函数进行实现
connect
sender:发出信号的对象
signal:sender对象的信号
receiver:信号接收者
method:receiver对象的槽函数,当检测到sender信号,receiver对象调用method方法
信号与槽的连接方式
一个信号可以与另一个信号相连
// 信号一可以触发信号二的发送 connect(object1,SIGNAL(signal1),object2,SIGNAL(signal1));
同一个信号可以和多个槽相连
connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1)); connect(object1,SIGNAL(sIgnal1),object3,SIGNAL(slot2));
同一个槽可以响应多个信号
connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1)); connect(object3,SIGNAL(signal3),object2,SIGNAL(slot1));
常用连接方案
connect(object1,SIGNAL(signal),object2,SLOT(slot));
实战
计算圆球体积
头文件
头文件(dialog.h)
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
// 引入标签,命令按钮
#include<qlabel.h>
#include<qpushbutton.h>
#include<qlineedit.h>
class Dialog : public QDialog
{Q_OBJECT
public:Dialog(QWidget *parent = nullptr);~Dialog();
private:QLabel *lab1, *lab2;QLineEdit *lEdit;QPushButton *pbt;
// 设置槽函数
public slots:void CalculateCircleV();
};
#endif // DIALOG_H
main.cpp
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;// 设置标题w.setWindowTitle("计算圆球体积");w.show();return a.exec();
}
dialog.cpp
#include "dialog.h"
#include<QGridLayout>
const static double PI=3.1415;
Dialog::Dialog(QWidget *parent): QDialog(parent)
{// 标签一(提示输入)lab1 = new QLabel(this);lab1->setText("请输入圆球的半径:");// 标签二(显示结果)lab2 = new QLabel(this);
// 创建一个编辑框空间(专门用于接收用户的输入圆球半径的值)lEdit = new QLineEdit(this);
// 创建命令按钮pbt = new QPushButton(this);pbt->setText(tr("计算圆球体积"));
// 表格布局QGridLayout *lay = new QGridLayout(this);// 第一行的第一列lay->addWidget(lab1,0,0);// 第一行的第二列lay->addWidget(lEdit,0,1);lay->addWidget(lab2,1,0);lay->addWidget(pbt,1,1);
// 将编辑框信号与槽函数关联,只要文本发生改变就会调用槽函数// connect(lEdit, SIGNAL(textChanged(QString)),this,SLOT(CalculateCircleV()));// 将按钮信号与槽函数关联,只有点击按钮,才会调用槽函数connect(pbt, SIGNAL(clicked()),this,SLOT(CalculateCircleV()));
}
Dialog::~Dialog()
{
}
void Dialog::CalculateCircleV()
{bool isLoop;QString str;QString val = lEdit->text();int num = val.toInt(&isLoop);double result = 4.0/3.0*PI*num*num;lab2->setText(str.setNum(result));
}
相关文章:

DAY13
面试遇到的新知识点 char str[10],只有10个字符的空间,但是只能存储9个字符,最后一个字符用来存储终止符\0 strlen只会计算\n,不会计算\0 值传递: void test2(char * str) {str "hello\n"; }int main() {char * str;test2(str);…...
WPF 自定义用户控件(Content根据加减按钮改变值)
前端代码: <UserControl.Resources><Style x:Key"Num_Button_Style" TargetType"Button"><Setter Property"MinWidth" Value"30" /><Setter Property"Height" Value"35" />&l…...

CPU、GPU、显卡
CPU VS GPUCPU(Central Processing Unit),中央处理器GPU(Graphics Processing Unit),图形处理单元GPU 的技术演变CUDA(Compute Unified Device Architecture) 显卡(Video…...
深入理解 Django 自定义用户模型
1. 引言 Django 作为一个强大的 Web 框架,内置了用户认证系统。然而,实际项目中我们通常需要扩展用户模型,以满足不同的业务需求。Django 提供了继承 AbstractUser 的方式,让我们能够轻松地定制用户模型。本文将通过一个自定义用…...

顺序表和链表的区别
顺序表和链表的区别 不同点顺序表链表(带头双向循环)存储空间物理上一定连续逻辑上连续物理上不一定连续随机访问(用下标随机访问)支持:O(1)不支持:O(N)任意位置插入或者删除元素可能需要搬移元素…...

系分-数据库总结
历年试题2024年05月试题 BCN范式,模式分解,触发器类型2023年05月试题 NoSQL基本特点,NoSQL对比,混合数据库2022年05月试题4 两段锁,事务并发,数据一致,本地事务发布20…...
new Date()解析
JavaScript 中的 new Date() 构造函数用于创建一个表示日期和时间的对象。Date 对象使得你可以以多种方式获取、设置和格式化日期和时间。让我们深入解析一下 new Date() 及其用法。 创建 Date 对象 可以通过多种方式创建 Date 对象: 不带参数: let no…...
df 的各种用法 以及与du 的区别
df的用法 在 Linux 中,“df”(disk free)是一个用于显示磁盘空间使用情况的命令。 一、主要功能 它可以列出文件系统的磁盘空间使用情况,包括磁盘总容量、已使用空间、可用空间以及使用率等信息。 二、常见用法及参数 基本用法&a…...
2024年下半年软考准考证什么时候打印?
2024年下半年软考准考证打印入口网址如下: https://bm.ruankao.org.cn/sign/welcome 广东的同学特别注意:准考证打印截止时间是11月8号,也就是考试前一天。一定要提前打印准考证,考试当天是无法打印的。 2024年下半年软考准考证…...

企业安全运行与维护(Enterprise Security Operation and Maintenance)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...
每日“亿“题 东方博宜OJ 1424-自然数的分解
原题链接:1424 - 自然数的分解-东方博宜OJ 题目描述 给定自然数 n ,将其拆分成若干自然数的和。输出所有解,每组解中数字按从小到大排列。相同数字的不同排列算一组解。 如,读入整数 3 ,分解方案如下: …...

初识Linux · 文件(1)
目录 前言: 回顾语言层面的文件 理解文件的预备知识 文件和磁盘 使用和认识系统调用函数 前言: 本文以及下篇文章,揭露的都是Linux中文件的奥秘,对于文件来说,初学Linux第一节课接触的就是文件,对于C…...

【MYSQL】mysql约束---自增长约束(auto_increment)
1、概念 在Mysql中,当主键为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 注意:自增长约束通常与主键放在一起使用。 通过给…...
基于STM32设计的智能学习台灯(华为云IOT)(238)
文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…...

网络层协议 --- IP
序言 在这篇文章中我们将介绍 IP协议,经过这篇文章的学习,我们就会了解运营商到底是如何为我们提供服务的以及平时我们所说的内网,公网到底又是什么,区别是什么? IP 地址的基本概念 1. IP 地址的定义 每一个设备接入…...

Java虚拟机(JVM)介绍
**Java虚拟机(JVM)**是Java平台的核心组件,它提供了一个运行时环境,使得Java程序可以在不同的操作系统和硬件平台上运行而无需修改。 JVM的架构 JVM主要由以下几个部分组成: 类加载器(Class Loader…...

1000题-计算机网络系统概述
术语定义与其他术语的关系SDU(服务数据单元)相邻层间交换的数据单元,是服务原语的表现形式。在OSI模型中,SDU是某一层待传送和处理的数据单元,即该层接口数据的总和。 - SDU是某一层的数据集,准备传递给下一…...

Authentication Lab | IP Based Auth Bypass
关注这个靶场的其它相关笔记:Authentication Lab —— 靶场笔记合集-CSDN博客 0x01:IP Based Auth Bypass 前情提要 有些开发人员为了图方便,会给站点设置一个 IP 白名单,如果访问站点的用户的 IP 在白名单内,则允许访…...

linux中的火墙优化策略
1.火墙介绍 1. netfilter 2. iptables 3. iptables | firewalld 2.火墙管理工具切换 在rocky9 中默认使用的是 firewalld firewalld -----> iptables dnf install iptables - services - y systemctl stop firewalld systemctl disable firewalld systemctl mask fi…...

GO网络编程(三):海量用户通信系统1:登录功能初步
一、准备工作 需求分析 1)用户注册 2)用户登录 3)显示在线用户列表 4)群聊(广播) 5)点对点聊天 6)离线留言 主界面 首先,在项目根目录下初始化mod,然后按照如下结构设计目录: 海量用户通信系统/ ├── go.mod ├── client/ │ ├──…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...