Qt学习总结(1)
一、C++基础内容
- 名称空间
(1)在C++中,如果想要使用标准库中的任何类、函数和对象,通过可以通过两种方式:
1)使用std::前缀,这明确指定了你使用的是位于std名称空间中的元素;对于大型的项目和库,推荐这样做
2)使用using namespace std;,一步到位,全部释放;对于小型代码或实例代码,推荐这样做
注:此外,在小型代码中,也可以统一将使用的几个元素单独释放出来。例如:using std::cout;。
2、基础知识
(1)输入输出
1)输入输出流:经常提到的“流”意思是可以连续输入输出内容,像水一样;
2)cout和cin箭头的方向:数据去哪,箭头就指向哪,这样比较好区分。
(2)基本变量
1)对变量的类型要熟悉(待添加变量表)
2)使用climits类能够查看不同数据类型所能表示的范围(包含头文件:#include;直接使用其各种常量,例如:INT_MAX表示int类型的最大值)
(3)流程控制
1)即if-else、switch、for循环、while和do-while(至少执行一次循环体,再检查条件————具有相对应的应用场景)
(4)函数
1)内联函数:有inline关键字,了解不深,适合简单执行时间短的函数,
(5)Lambda表达式
1)用途:优势在于其匿名性和对外部变量的捕获能力,经常用于绑定信号与槽,槽函数代码量较少的时候,比较简洁省事。
2)格式:{},捕获列表+参数列表+代码块
3)捕获列表:有两种捕获方式:一是需要用哪个变量就输哪个;二是用一个“=”表示把所有变量都按值捕获,捕获的是拷贝值,不能修改变量值,想修改变量值,需要按引用捕获,“&”
4)参数列表:就像函数一样,给形参,在被调用的时候要给实参。
(6)数组、指针
1)数组一般都会使用标准模板库中的动态数组:vector、list、map等。
3、类
(1)访问权限,对类中的成员变量和成员函数的可访问性进行了限制(补充表格)
1)成员变量一般是private,通过成员函数提供对外接口;(默认为私有权限)
2)成员函数一般为public,与外部对象进行交互、连接;
3)可重写的事件一般是protected。
(2)使用类中的变量和成员函数的时候,也需要像名称空间那样使用作用域解析运算符“::”
(3)Qt中经常出现的用法是一个类包含着另一个类的对象,称为“组合”,这种关系表示“has-a”关系
(4)引用函数的时候,使用点/箭头取决于前边的对象类型,普通变量用点;指针变量用箭头
4、引用
(1)C++中一个数据对应着一个内存,通过变量名访问 内存空间的数据,叫做直接访问;相对于直接访问,我们也可以通过指针访问内存地址,再得到该地址的数据,叫做间接访问,引用则是相当于给内存中的数据起了一个别名
(2)用途1:作为函数参数传参,一方面能够达到指针的效果,不会像值传递那样进行数据的大量拷贝,浪费内存,而且无法改变变量的值;另一方面代码书写很简洁,像值传递一样,不用像指针使用解引用。
(3)用途2:引用做返回值,函数返回引用的时候,会返回一个指向返回值的隐式指针,此时函数可以当左值,即可以被赋值
(4)ctrl+a+i代码自动对齐
5、重载
(1)运算符重载+函数重载
(2)运算符重载:自己定义加减乘除等运算符在自定义类型(类或者结构体)上的行为
(3)函数重载:函数的形参(参数个数、参数类型或者顺序)必须不同,与函数重写作区分,重写是和虚函数一起使用的,只有代码内容不同。
(4)const的使用,有待补充
6、构造函数
(1)每次创建类的新对象时都会自动执行,对成员变量进行初始化和其他一些初始化操作
(2)对类进行实例化的时候,就是参考其构造函数的API,所以加不加括号都可以,有参就加括号,无参就不加
点击查看代码
Car *m_car=new Car;
Car *m_car=new Car();
点击查看代码
class Car{
public:
string brand;
string type;
int year;
Car(string a, string b, int y): brand(a), type(b), year(y){
cout<<"测试"<<endl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!