- 博客(42)
- 收藏
- 关注
原创 软件自动化测试(1):python+selenium自动化测试环境搭建
下载地址:https://www.jetbrains.com.cn/en-us/pycharm/download/?下载地址:https://registry.npmmirror.com/binary.html?下载地址:https://github.com/mozilla/geckodriver/releases。下载地址:https://www.python.org/downloads/windows/注意:需要下载与浏览器版本对应的驱动。3.点击回车,等待安装完成。4.在设置中查看版本。
2025-04-01 21:04:27
315
原创 qt实现一个简单http服务器和客户端
1.不管是服务器还是客户端,都要在.pro文件中添加。登录功能、下载文件功能、上传成绩功能。客户端输入用户名与密码,点击登录。分别运行服务器与客户端程序。登录功能、下载文件功能。
2025-03-21 14:35:27
663
原创 c++基础:34. optional(c++17)
std::optional 提供了一种方式来表示可能不存在的值,避免了使用空指针的问题,并提供了更好的类型安全性。
2024-08-06 18:25:35
105
原创 c++基础:32.预编译头文件
作用:抓取一堆头文件,将它们转化为编译器可以使用的格式,而不用重复读取这些头文件,这些代码只编译一次。右键pch.cpp 属性,选择创建,点击应用。编译项目,可以发现编译时间大量减少。右键项目属性,选择使用,点击应用。
2024-08-04 19:05:51
132
原创 c++基础:25.函数指针和lambda
lambda本质上是定义匿名函数的方式。匿名函数–顾名思义,没有名字的函数。[]表示捕获方式,控制如何传入传出参数。[&] 表示引用传递外部所有变量。[=]表示值传递外部所有变量。[&b]表示传递b变量。
2024-07-19 21:38:21
286
原创 c++基础:24.std::array标准数组
arr<int,5>:第一个参数为数组类型,第二个为数组大小。2.没有性能损失,有普通c数组一样。
2024-07-19 20:39:28
180
原创 c++基础:22.栈和堆
在栈中分配变量时,栈指针(栈顶部的指针)移动相应变量大小的字节,分配int就移动4个字节。栈中分配的内存是连续的。使用new实际上调用了malloc函数,在堆上分配内存,内存是不连续的。通常是一个预定义大小的内存区域,一般为2兆字节。
2024-07-17 15:12:26
211
原创 c++基础:21.模板
这并不是一个定义好的函数,只有调用这个函数的时候,例如:Print(6);这时这个具体的函数才被创建,并作为源代码编译。如果没有调用模板函数,那么这个函数就不会被创建和编译。
2024-07-16 22:50:32
133
原创 c++基础:19.静态库与动态库
静态链接是在编译时发生的,编译静态库时,将库链接到可执行文件中。静态库就存在于可执行文件中。动态链接是在运行时发生的,当可执行文件运行时,才会加载动态库。
2024-07-14 22:13:15
96
原创 c++基础:18.vector
我们通过断点的方式发现,在main()函数运行第二行后发生了第一次拷贝,运行第三行后又发生了两次拷贝,运行第四行后又发生了三次拷贝。这是vector进行了三次扩容。为什么还有三次拷贝,这是因为我们先通过构造函数Demo(1,2)构造了一个对象,然后复制到vector中的。vector会重新分配新的内存,分配一块新内存,将旧内存中数据复制到新内存,然后释放旧内存。emplace_back(),会根据传入的参数直接构造一个给定类型的对象。1.预估大小,避免扩容。
2024-07-14 21:16:20
239
原创 c++基础:17.智能指针
不控制所指对象的生存期,指向由一个shared_ptr所管理的对象,将weak_ptr绑定到一个shared_ptr不会改变shared_ptr引用计数,当最后一个指向对象的shared_ptr被销毁,对象会被释放。共享智能指针,多个shared_ptr可以指向同一个对象。当指向一个对象的最后一个shared_ptr被销毁时,shared_ptr类会通过析构函数自动销毁此对象。某个时刻只能有一个unique_ptr指向一个给定对象,当unique_ptr被销毁时,它所指对象也被销毁。
2024-07-12 16:23:53
246
原创 c++基础:16隐式转换与explicit
b可以正常初始化,a不可以。因为这条语句做了两次隐式类型转换,一次是const char *转为string,再一次是string转为Demo。
2024-07-11 23:55:20
226
原创 c++基础:15.const与mutable
编译是不会通过的,因为常量引用表示不会修改引用对象,而GetX()不是常函数,所以是可以修改对象的,所以必修要在函数名后面加const。在方法名后面加const,表示不会修改这个类中的任何东西。mutable修饰的变量,可以在常函数中修改。const与常量引用。
2024-07-11 17:22:16
123
原创 c++基础:13.数组
下标法访问第n个元素,就是访问相对于首地址的 n*sizeof(int)的地址偏移。一维数组代表一组同类型数据的集合。数组中内存是连续的。
2024-06-29 15:29:59
243
原创 c++基础:12.虚函数
基类中想要声明为虚函数的,要在前面加vitual,派生类中,重写的虚函数要在函数后加override关键字,override可以省略,建议添加有助于阅读。People类只有一个纯虚函数,可以将People类称为接口类,接口类不能实例化对象。派生类Student必须实现基类中的纯虚函数,否则也不能实例化对象。因为在类中正常声明的函数或方法,当调用这个方法的时候,总会去调用属于这个类型的方法。纯虚函数允许在基类中定义一个没有实现的函数,强制在基类中进行实现。
2024-06-28 16:15:41
203
原创 c++基础:8.枚举
Leve 不是命名空间,这个枚举存在与Demo中,所以要使用Demo::ERROR。A默认值是0,B默认值1,C默认值2,以此类推。枚举就是某一组值的集合,枚举值是一个整数。
2024-06-23 18:19:05
123
原创 c++基础:7.类与static
类内部使用static,表示这部分内存是这个类的所有实例所共享的。也就是不管实例化多少类对象,static修饰的变量只有一个实例。build是不通过的,因为链接的时候会发现test.cpp和demo.cpp这两个编译单元都有fun这个函数。类外使用static修饰的符号,在链接(link)阶段是局部的,只对定义它的编译单元(.obj)可见。static修饰的变量或方法,链接器不会在这个编译单元(cpp)外找它的定义。1.所有类的实例对象,共享static修饰的变量。2.静态方法不能访问非静态变量。
2024-06-23 17:47:48
432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人