- 博客(336)
- 收藏
- 关注
原创 【C++入门篇 - 8】:多态
现在来观察以下代码:当更换pa指针的地址为b时,最终调用的fun还是A类中的fun函数。虚函数,存在于类中,通过virtual关键字修饰的函数。解决bug的方法:类中有虚函数,析构函数必须是虚析构。访问方式:通过对象访问 或 通过对象地址访问。有时我们并不希望父类的某个函数在子类中被重写。父类的虚函数或纯虚函数在子类中依然是虚函数。:同一个接口,可能会对应不同的函数。以上代码出现错误,解决的方法:引入。纯虚函数,是虚函数,没有函数定义。在以下的示例中均有体现。来避免该函数再次被重写。
2025-04-11 22:46:31
796
原创 【C++入门篇 - 7】:继承
在构造D类时继承链里有虚基类,所以先构造虚基类A,构造B类时,继承链中有虚基类,先构造虚基类,但是在构造D类时已经构造了,所以这个virtual关键字就是告诉B、C类,A类已经被构造了。观察以上代码可知,D类继承于B、C类,而这两个类继承同样的A类,这样就构成了菱形继承。但是,因为B、C类都继承于A类,当给A类中的数据成员赋值时,会出现二义性问题。观察以上结果可知,B类继承A类时会增大内存,增大的内存即为A类的内存。答:在以上示例中,A类中的a成员为私有属性,将其改为。:如何在B类中访问A的数据成员?
2025-04-11 22:45:44
588
原创 【RGB Picker】:RGB拾取器,拾取每一个五彩斑斓的梦
RGB拾取器是一款高效实用的工具,旨在帮助用户轻松获取和管理颜色信息。精准RGB值获取:用户可以通过简单的鼠标点击或按下Alt快捷键,快速获取屏幕上任意位置的RGB颜色值,确保颜色选择的准确性。实时颜色显示:在获取RGB值的同时,软件会在窗口的颜色展示框中实时显示该颜色,用户可以直观地查看和确认所选颜色。便捷复制功能:用户可一键复制获取的RGB值,方便在设计软件、网页开发等场景中快速使用,提升工作效率。
2025-01-12 21:38:43
607
原创 【QSS样式表 - ⑮】:QTreeView、QTreeWidget控件样式
adjoins-item (分支与item不相邻)如下所示。branch:adjoins-item (分支与item相邻)如下所示。branch:has-siblings (有兄弟) 如所示。branch:has-children (有孩子)如下所示。QTreeWidget 是 QTreeView 的子类。branch 如下所示。组合使用,如下所示。
2024-12-25 13:35:50
758
原创 【QSS样式表 - ⑭】:QListView、QListWidget控件样式
如下所示,当对 QListView 控件样式进行设置时 QListWidget 控件的样式也一样改变,因为 QListWidget 是 QListView的子类。
2024-12-24 15:14:12
1003
原创 【QSS样式表 - ⑪】:QDateTimeEdit控件样式
新建一个 QMainWindow ,并在窗口中放置 QDateTimeEdit 和 QCalendarWidget 控件。QCalendarWidget 的子控件。QDateTimeEdit 子控件。
2024-12-24 11:32:10
1314
原创 【QSS样式表 - ⑨】:QGroupBox控件样式
新建一个 QMainWIndow 窗口,在其中放入四个 QGroupBox 控件。分别设置这四个 QGroupBox 可观察其区别。
2024-12-23 17:46:28
547
原创 【QSS样式表 - ⑧】:QComboBox控件样式
* 下拉视图 *//* 选中文字色 *//* 下拉视图每一项 *//* 边框 *//* 下拉视图每一项 *//* 边框 *//* 选中背景色 */
2024-12-23 15:39:57
631
原创 【QSS样式表 - ③】:QSS常用属性
盒子模型将每个界面元素视为一个矩形框,框的各个部分可以通过不同的属性进行样式设置。盒子模型主要由四个部分组成:margin(外边距)、border(边框)、padding(内边距)和内容区域。最后将图片的九块区域分别放到窗体(QLabel)的九块区域,从上面我们知道,分割后图片的四个角区域和窗体的四个角区域一样,因此放上去后不会有改变,而图片的其他区域比较小,窗体的其他区域比较大时,会自动拉伸填充。然后,将窗体(即示例中的 QLabel)进行分割,分成九块。我们的需求是要求图片的四个角都不变形。
2024-12-22 15:50:18
1710
原创 【QSS样式表 - ②】:QSS选择器
QSS选择器用于选取要设置样式的 Qt控件或窗口,Qt样式表支持CSS2中定义的所有选择器。新建一个QMainWindow窗口程序,拖动两个QLabel控件、一个QFrame控件。注意:QLabel 是 QFrame 的子类,因此设置的样式也对 QLabel 生效。
2024-12-22 10:51:48
507
原创 【QSS样式表 - ①】:Qt样式表介绍
Qt框架受HTML中的层级样式表(Cascading Style Sheets, CSS)的启发,产生了QSS,QSS用于定义各种界面组件(QWidget类及其子类)的外观样式,从而使Qt界面呈现绚丽漂亮的换肤效果。
2024-12-22 10:21:05
493
原创 【微信小程序开发 - 4】:小程序的宿主环境介绍(含源码)
宿主环境 (host environment) 指的是程序运行所必须的依赖环境。例如:Android 系统和 iOS 系统是两个不同的宿主环境。安卓版的微信 App 是不能在 iOS 环境下运行的,所以 Android 是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的。小程序中的 API是由宿主环境提供的,通过这些丰富的小程序 API,开发者可以方便的调用微信提供的能力。例如:获取用户信息、本地存储、支付功能等。事件监听 API特点:以 on 开头,用来监听某些事件的触发。
2024-12-19 14:09:24
925
原创 【微信小程序开发 - 3】:项目组成介绍
pages 用来存放所有小程序的页面utils 用来存放工具性质的模块(例如:格式化时间的自定义模块)app.js 小程序项目的入口文件app.json 小程序项目的全局配置文件app.wxss 小程序项目的全局样式文件project.config.json 项目的配置文件sitemap.json 用来配置小程序及其页面是否允许被微信索引。
2024-12-19 09:55:34
1384
原创 【微信小程序开发 - 2】:微信开发者工具简介
微信开发者工具是腾讯公司为微信小程序开发者提供的一款专业集成开发环境(IDE),旨在为开发者提供高效、便捷的开发、调试和测试体验。它支持小程序的全生命周期管理,包括项目创建、代码编写、实时预览、调试和发布等功能。
2024-12-18 22:59:43
1281
原创 【微信小程序开发 - 1】:小程序简介
运行环境不同:网页运行在浏览器环境中;小程序运行在微信环境中。API不同:由于运行环境的不同,所以小程序中无法调用 DOM 和 BOM 的 API。但是,小程序中可以调用微信环境提供的各种 API,例如:地理定位扫码支付开发模式不同:网页的开发模式:浏览器+代码编辑器。小程序有自己的一套标准开发模式:申请小程序开发账号安装小程序开发者工具创建和配置小程序项目。
2024-12-18 22:25:10
313
原创 【C++入门篇 - 6】:静态成员、单例模式、友元、常量成员
修饰普通函数,C语言中普通函数默认全局使用,加static修饰之后,该函数只能在当前文件中使用。静态成员,指的是在C++类中声明成员时,可以加上static关键字,这样声明的成员叫静态成员。常量成员,指的是在C++类中声明对象成员时可以加上const关键字,这样声明的成员叫常量成员。修饰类中函数成员,函数也是被所有对象共享,且在该函数中只能操作静态数据成员。通过语法来限定在该函数成员内是无法修改类中的数据成员。修饰块作用域变量,内存在全局数据区,使用在块内。修饰类中成员数据,所有对象共享该数据成员。
2024-10-12 20:33:53
805
原创 【C++入门篇 - 5】:构造和析构
这时会看到有两个文件生成:class_one.h、class_one.cpp,class_one.h主要用来声明和定义函数,不写有内存的数据,class_one.cpp中写带内存的数据。主要的作用是在对象生命周期结束时,做一些清理工作,也可以将对象生命周期最后要做的事情写在析构函数中。没有写拷贝构造,系统会提供一个隐式的拷贝构造,该拷贝构造函数会把参数的数据全部拷贝一份到自己身上。构造函数,它是一种特殊的函数,主要用来在创建对象时初始化对象,即为对象的成员变量赋初始值。this指针指向调用者对象的首地址。
2024-10-12 20:32:02
583
原创 【C++入门篇 - 4】:面向对象
从关键字开始,到下一个关键字结束(或者花括号结束),都属于该关键字的控制范围。类是有数据加功能构成的,也就是变量和函数,把变量和函数绑定在一起。类是一种用户自定义数据类型,可以看作是c语言中结构体的升级版。:在类外不可以直接访问,继承的子类也不能调用,只能在类内访问。:在类外不能访问,只有继承的子类可以进行访问。在面向对象的类中,数据成员绝大部分情况是。分为三种:公有属性、保护属性、私有属性。,函数成员基本上是对数据的操作,一般是。:在类外或类内都可以直接访问。
2024-10-12 20:30:50
405
原创 【C++入门篇 - 3】:从C到C++第二篇
注意:在C语言中,如果内存不够时可以使用realloc进行内存的扩容(注意:少用,因为申请的内存可能是不连续的或者是共用了其他的内存),而在C++中,如果内存不够,则重新分配一个更大的连续内存,把原来内存的数据拷贝过来,然后原内存释放。2、delete可以释放两种内存,一种是单个内存,一种是连续内存。类似于c语言中的字符数组。2、new可以分配两种内存,一种是单个内存,一种是连续的内存。2、在编写代码时写的程序不可能所有的标识符都没有重名现象,3、delete释放内存时,指针的必须是指向内存首地址。
2024-10-11 07:18:31
757
原创 【C++入门篇 - 2】:从C到C++第一篇
内存膨胀:指的是代码区的代码变多,因为使用内联函数之后,那么这个函数的调用就不会在栈区申请内存来运行,也就是少了入栈出栈的时间,如果是一个普通函数在调用的时候会有入栈和出栈。顾名思义,在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用默认值,就无须指定该参数。正常调用函数的时候是通过函数名,即函数地址进行调用,而内联函数是通过将函数体替换掉了函数名。在C++中允许函数名相同,参数列表不同,这叫函数重载。函数重载指的是在同一个项目中定义的函数名字可以重复。1、引用是外号,不占内存。
2024-10-11 07:17:56
575
原创 【C++入门篇 - 1】:C++编程等演示环境介绍
VS下载官网一般我们下载社区版,下载好后进行安装,安装时选择与C++有关的内容进行安装,然后设置语言环境。
2024-10-11 07:10:00
421
原创 【C语言零基础入门篇 - 17】:排序算法
插入排序的规则是:第一轮开始时默认序列中第一个数据是有序的,之后各个数据以此为基准,判断是插入在此数据的前面还是后面,之后的数据依次向后移动,腾出位置,让数据插入,以此类推,直到整个序列有序为止。如果在一组需要排序的数据序列中,数据ki和kj的值相同,即ki= =kj,且在排序前ki在序列中的位置领先于kj,那么当排序后,如果ki和kj的相对前后次序保持不变,即ki仍然领先于kj,则称此类排序算法。递增排序(升序)后 0、1、2、3、4、5、6、7、8、9。原始数据:8、6、5、4、9、7、1、2、3。
2024-09-23 06:27:41
705
原创 【C语言零基础入门篇 - 16】:栈和队列
队列有队首(front)和队尾(back),队首(front)指向队列的第一个数据,队尾(back)指向队列中的最后一个数据。栈只有一个开口,先进去的数据在栈底(bottom),后进来的元素在栈顶(top)。栈结构的数据操作只在栈顶。栈的特点:先进后出。例如:仓库进货、出货。什么是队列:功能受限的线性数据结构。什么是栈:功能受限的线性数据结构。队列的基本操作:增、删、改、查。栈的基本操作:增、删、改、查。
2024-09-23 06:27:09
484
原创 【C语言零基础入门篇 - 15】:单链表
链表是数据结构中线性表的一种,其中的每个元素实际上是一个单独的结构体对象,而所有对象都通过每个元素中的指针链接在一起。什么是结点:链表中每个结构体对象叫做结点。什么是首元结点:其中第一个数据结点。什么是头结点:如果第一个结点不用于存储数据,只用于代表链表的起始点,则这个结点称为链表的头结点。
2024-09-23 06:26:30
986
原创 【C语言零基础入门篇 - 14】:顺序表
线性表:线性表是数据结构的一种。一个线性表是 n 个具有相同特性的数据元素的有限序列。(数组也是线性表)线性表中数据元素之间是一对一的关系。线性表主要有顺序表、链表以及栈和队列。//可以存放100个元素的顺序表//当前元素的个数//最多能存多少个元素//顺序表//元素个数//最大容量typedef int Type //类型的定义Type *data;//数据域(存储数据的空间)int length;//顺序表的长度。
2024-09-18 20:53:32
844
原创 【C语言零基础入门篇 - 12】:指针进阶
例如:若定义了以下函数fun,如果p2是该函数的形参,要求通过p2把动态分配存储单元的地址通过函数参数传回主调函数,则形参p2应当怎样正确定义。全局静态常量区(全局区):用于动态内存的申请与释放,一般由程序员手动分配和释放,若程序员不释放,则程序结束时由操作系统回收。指针变量也是有其对应地址的,那么既然有地址,就可以用另一个指针变量指向它的地址,也就是指向指针的指针,简称多重指针。堆区:用于动态内存的申请与释放,一般由程序员手动分配和释放,若程序员不释放,则程序结束时由操作系统回收。
2024-09-18 20:52:13
904
原创 【C语言零基础入门篇 - 11】:指针基础
内存地址:在计算机科学中,内存中每个用于数据存取的基本单位,都被赋予一个唯一的序号,称为地址,也叫做内存地址。什么是指针:指针就是内存地址。什么是指针变量:保存内存地址的变量。%p 输出地址的占位符,输出十六进制,%#p输出的十六进制前加上0X。
2024-09-18 20:51:42
493
原创 【C语言零基础入门篇 - 10】:自定义数据类型
含义:用户自己建立的数据类型类别:结构体、共用体、枚举类型比如,有5个学生,我们要保存他们的信息,这些信息包括学号、姓名、考试成绩。我们如何写代码保存数据呢?struct 结构体类型名 变量名;在声明类型的时候定义变量注:在格式二中,可以省略结构体类型名;相同类型的结构体变量可以相互赋值。变量名.成员名结构体变量的定义变量名.成员名。
2024-09-18 20:51:12
656
原创 【C语言零基础入门篇 - 9】:文件操作
一、什么是文件?(1)程序文件。(2)数据文件。二、文件的概念1、文件名文件名由3部分组成:①文件路径:表示文件在外存设备中的存储位置;②文件名主干:表示文件的名字。③文件后缀:表示文件的性质。2、C提供两种访问文件的途径:二进制模式和文本模式。
2024-09-18 20:50:40
667
原创 【C语言零基础入门篇 - 8】:预处理之文件包含
宏定义,又称为宏替换,自定义一个宏(要符合标识符的命名规则),用于替换任意数据、标识符或者表达式。无参宏定义定义无参宏的基本格式:#define 宏名 宏替换注意:不能给宏定义的常量赋值注意:预处理做替换是没有计算功能的,宏名约定俗称都是大写优点:一改全改带参宏定义#define 宏名(参数表) 宏替换注意:宏定义是替换,其在替换完成前并不会计算。宏定义尽量用大写,使其在程序中容易辨别区分。方便程序修改。
2024-09-18 20:47:35
566
RGB Picker.exe 轻松拾取屏幕上任意位置的RGB值
2025-01-12
QQ分组神器-Python小作坊
2023-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人