Qt学习总结(1)

一、C++基础内容

  1. 名称空间
    (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();  
(3)初始化列表:QT框架构造函数就使用了初始化列表,是一种高效的初始化手段,是C++推荐的初始化类成员变量的方式,能提供更好的性能和灵活性。
点击查看代码
class Car{
public:
    string brand;
    string type;
    int year;

    Car(string a, string b, int y): brand(a), type(b), year(y){
        cout<<"测试"<<endl;
}
}
(4)this关键字 1)是一个指向调用对象的指针,在成员函数中使用,可以明确指出成员函数正在操作的是哪个对象的成员 2)用途:一是当成员函数的形参与成员变量重名,用于区分;二是需要进行链式调用的时候 3)QT中this就代表窗口,想在成员函数中对窗口进行什么操作就需要用到this指针了! 4)new和delete:用于动态分配内存和释放内存,释放数组的时候要加[] 5)拷贝构造函数:待补充 7、析构函数 (1)与构造函数成对使用,在对象生命周期结束时会被自动调用。 8、静态成员(static) (1)静态成员变量+静态成员函数 (2)静态成员不依赖类的实例化,其他类的成员都必须实例化后,通过对象调用,而静态函数可以不用实例化,直接通过类名+作用域运算符调用 (3)可以用来计算实例化了多少个对象 9、继承 (1)面向对象编程(OOP)的三大特性:封装、继承和多态 (2)分文件编写:头文件定义类、定义成员变量、声明成员函数;CPP文件实现函数,给成员变量赋初值(QT代码主要在这里写);main文件运行代码 (3)基类构造函数:子类要通过其构造函数的初始化列表来调用基类的构造函数(必须这样做,不然编译的时候会报错),这是构造子类对象时初始化基类部分的标准做法 (4)虚函数:virtual关键字,某些函数最开始功能不确定,需要根据具体的对象来添加具体的功能,此时就要用虚函数。 10、多态 (1)基于继承和虚函数,子类进行函数重写,实现多态,实现在运行的时候再决定调用哪个函数的目的,地址晚绑定
posted @   纯真的田螺  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
点击右上角即可分享
微信分享提示