- 博客(32)
- 收藏
- 关注
原创 C++——多态、抽象类和接口
虚函数(virtual):允许函数在派生类中被重写override关键字:明确表示重写基类虚函数多态两种实现基类指针指向派生类对象基类引用绑定派生类对象运行时绑定:具体调用哪个函数在运行时决定抽象类是指包含至少一个纯虚函数的类,它不能被实例化,只能作为其他类的基类。
2025-04-22 21:12:45
522
原创 C++——继承、权限对类的影响、基类构造函数、虚函数与菱形继承和多重继承
继承是面向对象编程(OOP)中的一个核心概念,特别是在C++中。它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。继承的主要目的是实现代码重用,以及建立一种类型之间的层次关系。1.:子类继承了父类的属性和方法,减少了代码的重复编写。2.:子类可以扩展父类的功能,添加新的属性和方法,或者重写(覆盖)现有的方法(属性不能被重写或覆盖)。3.:通过继承和虚函数,C++支持多态,允许在运行时决定调用哪个函数。编程示例。
2025-04-13 23:31:52
705
原创 C++——静态成员
静态成员函数提供了一种在不创建对象的情况下执行操作的方法,这对于实现工具函数或管理类级别状态很有用。:类似于静态成员变量,静态成员函数可以通过类名直接调用,也可以通过类的实例(对象)调用。:常用于存储类级别的信息(例如,计数类的实例数量)或全局数据需要被类的所有实例共享。:静态成员变量可以通过类名直接访问,不需要创建类的对象。:静态成员函数是可以不依赖于类的实例(对象)而被调用的函数。:静态成员变量需要在类外进行初始化,通常在类的实现文件中。:对于频繁使用的类,使用静态成员可以节省内存。
2025-04-06 16:49:02
453
原创 C++——析构函数
析构函数是C++中的一个特殊的成员函数,它在对象生命周期结束时被自动调用,用于执行对象销毁前的清理工作。析构函数特别重要,尤其是在涉及动态分配的资源(如内存、文件句柄、网络连接等)的情况下。
2025-04-06 00:39:14
498
原创 C++——new、delete关键字
在 C++ 中,new和delete是用于的关键字,它们允许程序员手动分配和释放堆(Heap)内存。与自动变量(栈内存)不同,堆内存的生命周期由开发者显式控制。
2025-04-05 17:50:12
227
原创 C++——this关键字
1.this在 C++ 中,this是一个指向当前对象的指针,它隐含在类的非静态成员函数中,用于标识当前正在操作的对象。1.this:当成员变量与函数参数同名时,用this->明确指向对象的成员。:通过返回*this实现方法的连续调用(类似:在函数中需要将对象自身作为参数传递时使用(例如回调函数)。:明确代码意图,避免命名冲突。
2025-04-05 17:22:38
236
原创 C++——引用
在 C++ 中,是一个非常重要的特性,它允许我们为变量创建一个别名。引用本质上是一个已存在变量的另一个名字,通过引用可以直接操作原始变量,而不需要通过指针的间接访问。引用在函数参数传递、返回值优化等场景中非常有用。的意思是“另一个名字”。比如,你有一个朋友叫“张三”,他的小名是“小三”。无论是叫“张三”还是“小三”,都是在指同一个人。在 C++ 中,引用就是给变量起了一个“小名”,通过这个小名可以直接访问原始变量。这里,ref就是a的别名。无论是操作a还是操作ref。
2025-03-24 00:03:32
664
原创 C++——权限初识
随着经验的增长,学习者开始处理更复杂的项目,他们将开始意识到恰当的访问控制的重要性,特别是在保持代码的可维护性、可读性以及在团队环境中的协作方面。在复杂的软件开发中,适当的访问控制对于代码的维护性和可读性至关重要。银行的账户是一个模板,是一个类,有存款人信息和账户额度,而具体的存款人视为一个对象,一个对象不能私自修改账户额度,需要通过一个操作流程,比如去ATM。:封装是面向对象编程中的一个核心概念,但对于初学者来说,理解封装的价值需要一定的时间和实践。这样的设计保证了类的封装性和数据的完整性。
2025-03-23 17:25:35
699
原创 C++基础——类
1.数据成员(Attributes:定义类的属性。这些是类内部的变量,用于存储对象的状态。2.成员函数(Methods:定义类的行为。这些是可以操作对象的数据成员的函数。3.构造函数和析构函数:特殊的成员函数。构造函数在创建对象时自动调用,用于初始化对象。析构函数在对象销毁时调用,用于执行清理操作。4.访问修饰符:如publicprivateprotected,用于控制对类成员的访问权限。例如,public 成员可以在类的外部访问,而 private成员只能在类内部访问。5.
2025-03-23 02:18:19
931
原创 C++基础——命名空间
定义命名空间假设我们要创建一个命名空间来包含与圆形相关的功能。我们可以命名这个命名空间为Cir// 计算圆周长// 计算圆面积在这个头文件中,我们定义了一个名为Cir的命名空间,其中包含了计算圆的面积和周长的函数,以及圆周率常量 PI。使用命名空间在 main.cpp 文件中,使用std::前缀访问命名空间int main()// 定义一个圆的半径return 0;在main.cpp中,我们首先包含了定义 cir命名空间的头文件。
2025-03-12 17:28:38
680
原创 QT Creator 安装及常用快捷键
的开源版提供了一个强大且灵活的开发框架,而对于需要额外支持和专有功能的大型企业或具有特定需求的项目,商业版则提供了所需的服务和资源。语言编写,支持多种编程语言通过绑定进行使用。对于许多开发者和小型企业来说,Qt。Qt 是一个跨平台的应用程序和用户界面框架,用于开发图形用户界面(GUI。)应用程序以及命令行工具。它最初由挪威的 Trolltech。(奇趣科技)公司开发,现在由。官网可能会失败,这里可以。
2025-03-10 16:43:05
109
原创 C语言——链表
链表是一种数据结构,是一种数据存放的思想;链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构。
2025-03-05 16:25:48
1828
原创 C语言——结构体、联合体/共用体、枚举类型、typedef关键字
i < 7;//跟第一个定义不同的是,此处的标号WeekDay省略,这是允许的。//变量w1、w2的类型为枚举型enum WeekDayint main()w1 = mon;w2 = fri;return 0;结合switch语句case MON:printf("周一\n");break;case TUE:printf("周二\n");break;// ...4. 枚举 vs 宏定义。
2025-03-02 01:56:01
1041
原创 C语言——指针
指针就是地址,地址就是指针指针变量就是存储别的变量的地址指针变量的定义:类型 *变量名int *p变量的访问有两种:直接访问(变量名),间接访问(地址)指向数组首元素的地址数组名代表数组中首个元素的地址:指向数组起始位置示例代码:int main()int *p;//数组的首地址就是首个元素的地址p = array;//数组名就是数组的首地址printf("通过首元素地址访问的值:%d\n",*p);printf("通过数组名访问值:%d\n",*p);return 0;
2025-02-08 03:36:31
1051
原创 C语言——函数
函数名、参数列表、返回值和函数体函数名是函数的标识,用于在程序中唯一地指代这个函数。就像每个人都有自己的名字一样,函数名使得程序员可以在程序的其他地方调用这个函数。例如,在一个 C 程序中有一个函数名为,当需要计算求和的操作时,就可以通过这个名字来调用它。参数列表:参数的定义与作用参数列表规定了函数在被调用时可以接收的数据。这些数据被称为参数,它们为函数提供了输入信息,使得函数可以根据不同的输入进行不同的操作。例如,一个函数有两个参数num1和num2。
2025-01-03 16:15:00
1043
原创 C语言——流程控制
循环体执行完毕后,执行更新表达式,它通常用于更新循环变量的值,以便在下一次循环时改变条件表达式的结果,从而控制循环的进程。后面括号中的表达式的值,如果表达式的值为真(在 C 语言中,非零值表示真),则继续执行循环体;:循环体中的代码应该有改变条件表达式值的操作,以便在合适的时候结束循环。循环开始时,首先执行初始化表达式,它通常用于声明和初始化循环变量,该变量用于控制循环的执行次数或作为循环体中操作的依据。是一种在许多编程语言中都常用的条件语句,它的主要作用是根据一个表达式的不同取值来执行不同的代码块。
2024-12-03 03:04:14
612
原创 C语言——初识
在 C 语言中,常量是指在程序运行过程中其值不能被改变的量。它就像是一个固定的数值或者固定的字符序列等,一旦定义,就一直保持不变,相当于程序中的一个 “固定值”。例如,数字5、字符'A'、字符串"Hello"等在程序运行时不会发生变化,这些都可以是常量。整型常量在程序中,1025-30等都是十进制整型常量。printf("两数之和为 %d\n", sum);return 0;这里的10和20就是十进制整型常量,用于表示整数,在程序运行过程中它们的值不会改变。浮点型常量像3.140.5-2.718。
2024-11-25 21:50:37
756
原创 C语言——C程序的基础框架
C语言程序的基本模块,用于执行特定任务。C语言中的函数类似于数学中的函数,它们接受输入(参数),执行一系列操作,并返回结果。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。:C语言标准库提供了许多有用的函数和数据类型,这些都可以通过包含相应的头文件来使用。在C语言中,需要声明变量的类型、名称和值。:到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行。:从头到尾一句接着一句的执行下来,直到执行完最后一句。:C语言提供了用于与用户进行交互的输入/输出函数,例如。
2024-11-24 00:42:12
1012
原创 C51—PWM开发SG90舵机
PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。脉冲宽度调制通过占空比编码模拟信号占空比:一个周期内,高电平占据时长的百分比例如:图中明显显示,4毫秒为一个波形周期,其中3ms为低电平,1ms为高电平。
2024-11-09 22:31:54
426
原创 C51—OLED屏幕(IIC协议)
IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。特点简单性和有效性由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件多主控。
2024-11-04 20:38:48
2359
原创 51—4G模块
E840-TTL(EC03-DNC)是亿佰特推出的 LTE CAT1 数传模块产品,该产品软件功能完善,覆盖绝大多数常规应用场景,E840-TTL(EC03-DNC)是为实现串口设备与网络服务器,通过网络相互传输 数据而开发的产品,该产品是一款带分集接收功能的LTE-FDD/LTE-TDD 无线通信数传模块,支持 LTE-FDD , LTE-TDD 网络数据连接,用户只需通过简单的设置,即可实现串口到网络服务器的 双向数据透明传输。
2024-10-15 00:54:21
707
原创 C51—蓝牙模块
蓝牙模块,又叫做蓝牙串口模块串口透传技术透传即透明传送,是指在数据的传输过程中,通过无线的方式这组数据不发生任何形式的改变,仿 佛传输过程是透明的一样,同时保证传输的质量,原封不动地到了最终接收者手里。以太网,蓝牙,Zigbee, GPRS 等模块玩法一样,对嵌入式程序员来说,不需要关心通讯模块内部数据 及协议栈工作原理,只要通过串口编程获得数据即可使用方式。
2024-10-05 01:53:04
568
原创 C51—串口通讯编程
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。是设备间接线通信的一种方式数据一位一位地顺序传送双向通信,全双工传送速度相对较慢关于电器标准和协议串行接口按电气标准及协议来分包括RS-232-CRS-422RS485等。
2024-10-04 00:12:48
2517
原创 C51-超声波测距
型号:HC-SR04超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。接线参考:模块除了两个电源引脚外,还有TRIGECHO引脚,这两个引脚分别接我们开发板的P1.5和 P1.6端口。
2024-09-26 01:57:35
587
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人