自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (11)
  • 收藏
  • 关注

原创 【C++】 --- 虚析构和纯虚析构

1. 为什么需要虚析构函数多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码code示例:#include <iostream>#include <stdlib.h>#include <string>using namespace std;class Animal {public: Animal() { cout << "Animal 构造函数调用!" << endl; }

2021-05-31 00:00:56 3

原创 【C++多态】 --- 多态实现原理简析

1. 多态分类多态分为两类 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 2. 动态多态的满足条件1. 有继承关系2. 子类重写父类中的虚函数动态多态使用条件父类指针或引用指向子类对象3. 多态实现的前提赋值兼容规则是指在需要父类对象的地方可以使用子类对象

2021-05-30 23:32:23 7 1

原创 【C++多态】 --- 多态问题抛出与virtual关键字

1. C++中多态的概念C++中所谓的多态(polymorphism)是指,由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。2. C++多态问题抛出下面看一个具体的例子:#include <iostream>#include <stdlib.h>using namespace std;class Animal{public: void speak(void) { cout << "动物在说话" << en

2021-05-30 23:07:20 17 1

原创 C++提高 --- 构造函数与析构函数

我们用构造函数去初始化一个对象的时候,会分配一段空间,构造函数的作用是对这段空间进行初始化的操作,并不是创建了这段空间在调用析构函数的时候,并不是去释放

2021-05-29 23:06:56 4

原创 Linux下利用c/c++使用sqlite

1. 安装sqlite下载连接:https://www.sqlite.org/snapshot/sqlite-snapshot-202105251610.tar.gz1> 解压

2021-05-27 23:40:25 13

原创 sqlite3使用

/*@brief 本程序测试sqlite数据库的增删改查@date 2012-09-03*/// SQLiteTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "sqlite3.h"#include <iostream>using namespace std;sqlite3 * pDB = NULL;//增加用户bool ...

2021-05-27 22:47:07 13

原创 Linux查找命令

1.findfind主要基于文件名去查找,其语法为:【find默认是递归的,不需要加-R参数也会自动去子目录查找】find path -option [ -print ] [ -exec -ok command ] {} \;比喻现在在一个工程中想找1.c这个文件find ./* -name 1.c其他具体的后面还可以跟很多参数,具体参看man手册。2. grepgrep主要是基于文件内容检索。其语法为:【grep默认不是递归的,需要加-R参数

2021-05-25 22:04:37 5

原创 code规范 --- 驼峰命名法

1. 命名方法1.1 驼峰命名法指混合使用大小写字母来构成变量和函数的名字。当变量名或函数名是由一个或多个单词连结在一起构成的唯一识别字时,第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myName、myAge,这样的变量名看上去就像骆驼峰一样此起彼伏,因此被称为驼峰命名法。int *treeBase;int elemNum;int treeSize;1.2 帕斯卡(Pascal)命名法也叫大驼峰法,与驼峰命名法类似,不过骆驼命名法是首字母.

2021-05-24 23:50:48 22

原创 Ubuntu下安装类似QQ截图的工具 flameshot

1. flameshot介绍flameshot是最近一个非常热门及好用的Linux下的截图软件,使用方式和QQ截图差不多。Ubuntu中apt安装方式提供的版本是0.5.0的,这个版本是没有在截图中插入文字的功能的,但是最近更新的0.6.0版本添加了这个功能,所以只能手动安装了。2. 安装方法方法一:apt-get install flameshot我们发现apt提供的版本是0.5.1的,0.6.0以下的版本是没有插入文字的功能的,如果你出现上面这种情况的话就只能手动安装了,转到下面

2021-05-24 22:34:39 7

原创 java基础 --- 装箱和拆箱

1. Java数据类型在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型)。基本类型的数值不是对象,不能调用对象的toString()、hashCode()、getClass()、equals()等方法,所以Java提供了针对每种基本类型的包装类型。如下: INDEX 基本类型 大小 数值范围 默认值 包装..

2021-05-17 22:52:59 28 2

原创 java基础 --- super关键字

1. super关键字的作用如果一个类从另一个类继承,我们new这个子类的示例对象的时候,这个子类对象类里面会有一个父类对象,怎么去引用这个父类对象呢?java中使用super来引用,super是当前对象里面的父对象的引用。2. super的用法super在java中有两种用法,下面分别阐述。2.1 使用super关键字访问父类的成员2.2 使用super关键字访问父类的构造方法参考链接:https://blog.csdn.net/qq_44357792/a...

2021-05-17 22:42:15 5

原创 java基础 --- 构造器

1. 什么是构造器1.1 构造器的概念构造器通常也叫构造方法或者构造函数。简单点说,就是C++中的构造函数,但是在java中是没有析构函数的,java提供了垃圾回收器,对于不再使用的资源会自动释放,这点比C++简单。那我们来重新梳理下构造函数需要care的点。1.2 构造器的作用构造器是用来初始化成员属性和成员方法的,在创建对象的时候会被自动调用。2. 构造方法和实例方法的区别构造方法和实例方法主要区别于三个方面:修饰符、返回值、命名修饰符 ...

2021-05-17 22:38:53 11

原创 java基础 --- IDEA中添加javap

安装过jdk之后,细心的同学都会发现bin目录下自带了一个工具软件javap,如果你想查看文件的字节码信息,有没有简便的方式呢,还是一望无际的使用命令行呢,答案是当然有,下面详细讲解使用设置Idea来查看字节码信息。1. 点击File->setting->Tools->External tools, 并点击+2. 在弹出的窗口中需要设置Name/Program/Arguments/Working directory四个参数Name可以输入名字,随便写,这里就输入ja

2021-05-14 00:01:49 29

转载 java基础 --- Java异常处理

异常

2021-05-13 23:02:36 5

原创 java基础 --- java包(package)

1. 概述1.1 为什么需要包这个概念package可以简单理解为创建文件夹,windows中不能存储同类型同名称的文件,java也是。为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。1.2 包的作用把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。 包也限定

2021-05-13 23:00:29 4

原创 java基础 --- java中的equals和==

1. equals()用法Java中所有的类都是继承自Object这个基类的,在Object类中定义了一个equals方法,这个方法的初始行为是比较对象的内存地址,但在一些类库中已经重写了这个方法(一般都是用来比较对象的成员变量值是否相等),比喻:String,Integer,Data等类中,所以它们不再是比较类在堆中的地址了。Object类中源码:public boolean equals(Object var1) { return this == var1;}String类中重写e

2021-05-12 23:08:51 11

原创 java基础 --- Java String类

1.

2021-05-12 23:08:09 45 4

原创 java基础 --- Java内存结构

1. 概述C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,

2021-05-11 22:53:50 4

原创 java基础 --- static关键字

1. statci关键字概念我们可以一句话来概括:方便在没有创建对象的情况下来进行调用。很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。2. static关键字用法下面从四中用法对static关键字进行讲解。static修饰类、static修饰方法、static变量、static修饰代码块2.1 static修饰类普通类是不能被允许申明为静态的,但是有一种特殊用法就是用static修饰内部类。这样的好处就是可以直接通

2021-05-11 22:53:33 6

原创 java基础 --- 内部类

1. 内部类的概念将类写在其它类的外部(可以在其它类的成员位置和局部位置),这时写在其它类内部的类就称为内部类,其它类称为外部类。在描述事物时,若一个事物内部还包含其它可能包含的事物,比喻在描述汽车时,汽车中还包含发动机,这时发动机就可以用内部类来描述class 汽车 { //外部类 class 发动机 { //内部类 }}2. 内部类的特点内部类提供了更好的封装,只有外部类可以 访问内部类 内部类可以独立继承一个接口,不受外部类是否继承接口影响 内部类可以直接访

2021-05-11 20:19:48 40 1

原创 java基础 --- Java修饰符总结与应用

1. Java修饰符分类Java语言提供了很多修饰符,主要分为以下两类:访问修饰符 非访问修饰符1.1 访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 default(即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 private: 在同一类内可见。使用对象:变量、方法。注意:不能修饰类(外部类) public: 对所有类可见。使用对象:类...

2021-05-11 20:16:03 8

原创 java基础 --- 浅谈Java SE、Java EE、Java ME三者的区别

从C/C++转到Java,老是看到Java SE,Java EE,Java ME这几个名词,今天简单总结下这三者的区别。Java SE(Java Platform,Standard Edition),这个是标准版本Java EE (Java Platform,Enterprise Edition),java 的企业版本Java ME(Java Platform,Micro Edition),java的微型版本。1. Java SE(Java Platform,Standard Editio.

2021-05-10 21:22:08 7

原创 硬盘容量和宽带的计算

简单的小科普1. 硬盘容量是怎么算的(为什么厂家标明500G的移动硬盘在电脑上显示却只有465G)原因在于厂家和操作系统的计算方式不一样厂家: 1GB=1000MB=1 000 000KB=1 000 000 000B操作系统:1GB=1024MB=1024 * 1024KB=1024 * 1024 * 1024B据此换算一下:500G=500 000 000 000B打开计算器500 000000 000 /(1024*1024*1024)= 465.661...

2021-05-10 14:36:03 1080 3

原创 java基础 --- java概述

1. Java发展史略2. Java跨平台平台指的是操作系统,包括Windows、MAC、Linux,Java可以保证在任意平台上运行。Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚 拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的 跨平台。 3. JRE和JDK3.1 JRE(Java Runtime Environment)JRE是j

2021-05-03 12:36:09 60 1

C语言中如何使用全局变量示例

C语言中如何使用全局变量简单示例,多文件.c中如何使用全局变量

2018-11-20

大彩串口屏-正点原子STM32DEMO

广州大彩屏,STM32程序,用正点原子的例程移植的,他们自带的例程是Keil4的,改了很多地方。

2018-06-21

F1正点原子开发板移植CanOpen源码

硬件是正点原子开发板,移植CanFestival源码,可以直接发CAN报文,亲测可用

2018-10-04

CanFestival3.10源码

从CanFestival官网下载的最新的源码,可以自己移植到工控机或者单片机

2018-10-04

STM32 L298N代码

STM32控制L298N驱动电机,通过按键实现控制,是调节PWM脉宽以及正反转

2018-10-04

STM驱动有刷电机源码

STM32驱动25GA370电机,PWM驱动,可以直接改引脚去用到自己的项目

2018-10-04

LD3320语音模块STM32

硬件基于正点原子F1开发板,控制LD3320模块,用于语音控制,程序只是给出了控制LED示范。

2018-10-04

根文件系统

参考朱有鹏老师嵌入式视屏课程,自己制作的根文件,跟视屏里面一样的操作

2018-09-25

龙邱SYN7318非特定语音识别模块程序

SYN7318语音模块,代码已经移植到正点原子F1开发板,只需要简单的实验下,就可以移植到自己的项目

2018-10-28

PCB封装库---经过很多次画板检验

常见的各种接口封装包括DB9、USB内存等等、芯片封装(常见的sTM32、DSP、以及常见电源芯片)、元器件封装(0603、SOT23等等)

2018-09-27

GNU_Makecn.rar

GNU_make ,用makefile管理工程的时候,很好的参考文档,比一起学makefile更具体

2019-08-14

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除