自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可惜可惜

可惜可惜

  • 博客(19)
  • 收藏
  • 关注

原创 Qt 对话框的创建和应用

概述对话框是与用户进行简短交互的顶层窗口。QDialog 是 Qt 对话框钟所有对话框的基类QDialog 继承于 QWidget 是一种容器类型的组件。QDialog 的意义QDialog作为一种专用的交互窗口而存在 QDialog不能作为子部件嵌入其它容器中 QDialog是定制了窗口式样的特殊的QWidgetQDialog 和 QWidget 的区别#include <QDialog>#include <QWidget>#include.

2020-06-19 20:54:26 376

原创 qt 的父子之间的关系

概述Qt 对象间可以存在父子关系每一个对象都保存有它所有子对象的指针 每一个对象都有一个指向其父对象的指针 当指定Qt对象的父对象时其父对象 会在子对象链表中加入该对象的指针 该对象会保存指向其父对象的指针简单的实验#include <QDebug>#include <QObject>#include <QString>void test(void){ QObject* p = new QObject(); ..

2020-06-18 20:35:02 359

原创 Qt 绘图

基本概念Qt图形系统中的坐标系物理坐标系(设备坐标系) 原点(0, 0)在左上角的位置,单位:像素(点) x坐标向右增长, y坐标向下增长逻辑坐标系数学模型中的抽象坐标系,单位由具体问题决定。坐标轴的增长方向由具体问题决定视口与窗口视口(viewport)物理坐标系中一个任意指定的矩形窗口(window)逻辑坐标系下对应到物理坐标系中的相同矩形深入理解视口与窗口视口与窗口是不同坐标系中的同一个矩形视口与窗口中的坐标...

2020-06-15 21:21:33 446

原创 QT5 安装

下载安装包运行安装包设置环境变量打开 QT 的安装路径将上面的三个文件添加到环境变量新建工程选择编译器编译运行

2020-06-12 20:54:34 229

原创 Singleton 单件模式

概述( overview )面向对象很好的解决了抽象的问题,但是不可避免的要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不记。但是某些情况下面向对象带来的成本必须谨慎处理。动机( Motivation )在软件系统里面,经常一些特殊的类,必须保证它们所在的系统中只存在一个实例,才能确保他们的逻辑正确性,以及良好的效率。如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例。这应该由设计者来完成而不是使用者来完成。代码设计 (Code Design)在设计的时..

2020-05-21 14:07:23 136

原创 树和节点抽象类的实现c++

概述树状图是一种数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树;基础节点深度:对任意节点x,x节点的深度表示为根节点到x节点的路径长度。所以根节点深度为0,第二层节点深度为1,以此类推 节点高度:对任意节点x,叶子节点到x节点.

2020-05-19 11:38:24 679

原创 gcc 工具集使用

概述GCC 和 gcc 的区别GCC (GNU Compiler Collection),故名思义它是一个编译器的集合,GCC 不仅能用于c/c++ 的程序还能用于其他的编程语言,(比如 Java ,只是后面 Java 开源了,他的支持由 Linux 官方来支持了)。gcc 是 GCC 里面的 C 语言编辑器。本文大抵只探讨 gcc l了。交叉编译嵌入式产品的资源常常是有限的...

2020-05-18 15:26:16 351

原创 Stack 实现

概述栈是一种特殊的线性表,仅能在一端进行操作,栈顶(Top)允许操作的一端,栈底(Bottom),不允许操作的一端。抽象父类#ifndef STACK_H_#define STACK_H_#include "Object.h"namespace MYLIB{template <typename T>class Stack:public Object{public: virtual void push(const T&e) = 0; vir

2020-05-16 15:40:18 202

原创 SmartPointer 实现(c++)

概述:之前写的 SmartPointer 只能指向单个的变量,不能完全发挥指针的作用。通过技术机制(ref)标识堆内存堆内存被指向时:ref++ 指针被置空时:ref-- ref == 0 时:释放堆内存代码#ifndef SMARTPOINT_H_#define SMARTPOINT_H_#include "Pointer.h"#include "Exception.h"#include <cstdlib>namespace MYLIB{te

2020-05-14 10:00:04 303

原创 LinkList 实现( c++)

概述链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。结点包括两个部分:存储数据元素的数据域(内存空间), 存储指向下一个结点地址的指针域。相对于线性表顺序结构,操作复杂。代码实现#ifndef LINKLIST_H_#define LINKLIST_H_#include "List.h"#include "Object.h"#include "Exception.h"names.

2020-05-13 15:40:31 586

原创 设计模式工厂模式

概述对象创建模式:通过 “对象创建” 模式绕开 new,来避免对象创建 new 过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。他是接口抽象之后的第一步工作。典型的模式:Factory Method Abstract Factory Prototype Builder动机(Motivation)在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的...

2020-04-30 10:38:14 118

原创 volatile 关键字的使用

概述在编写与外设相关的程序的时候要注意运用 volatile 关键字,否则可能出现程序在不使用编译器优化的时候能够正常的运行,但是一旦编译器的使用优化选项就会出现程序运行不正常的现象。volatile译为:易变的。这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地址中去读取变量的数据。编译器优化的时候会出现将该地址的值存放在寄存器里面。使用范围多任务环境下各任务间共...

2020-04-29 17:02:36 136

原创 混淆指针与数组导致的问题

概述在 c 语言中,一个数组变量可以理解成定义了一个指向数组的指针。大多数情况下这样的理解是没有问题的,但是还是要弄清楚他们的区别,否则会导致错误。本文会从因为混淆他们所导致的错误,揭示一个 C 语言鲜为人知的特点。问题实例// 在 test.c 文件定义一个全局的数组变量char g_name[] = {'h','l','j'};#include<stdio.h&gt...

2020-04-29 10:47:11 217 1

原创 LCD 显示

概述字符编码早期早期的时候只有一些大小写的英文字母,数字和一些符号被编码到计算机里,这个编码表就被称为 ASCII 编码。发展但是随着计算机的发展,原来的 ASCII 已经不能表示格式各样的语种(中文,日文,韩文等)。于是各个国家的计算机专家就设计了各种语言的编码,如中国的 GB2312,日本把日文编到 Shift_JIS 里,韩国把韩文编到Euc-kr 里。每个国家都有...

2020-04-29 09:43:52 750

原创 初识处理器—中断

概述中断是一种处理器与外设进行通信的一种机制,用于通知处理器(处理器并不关心外部事件,但是外设不能)外部有重要的外部事件发生,一般情况下面中断需要被处理器响应。处理器是怎么处理中断呢:需要中断服务程序(ISR)中断一旦发生从外设中读取中断寄存器的值来判断当前中断的而类型。 根据中断的类型具体设计逻辑。(执行中断服务程序) 清除外设状态寄存器的中断。 清除处理器中的中断标识。...

2020-04-23 15:02:03 304

原创 面向对象设计原则

概述从宏观层面的角度来看,面向对象的构建方法更能够适应软件的变化,能将变化所带来的影响减到最小。从微观层面的角度看,面向对象的方式更加强调各个类的的责任,由于需求变化导致新增类型不应该影响原来类型的实现,就是所谓的各司其职。对象是什么:从语言的层面看,对象封装了代码和数据 从规格上面讲,对象是一系列可被使用的封装的接口 从概念上面讲,对象是某种拥有责任的抽象面向对象设计原则...

2020-04-23 14:56:48 111

原创 初见处理器

概述本文章将会站在软件工程师的角度讲解处理器,不会从硬件工程师的角度来说明一个处理器是怎样设计的。微处理器和微控制器的区别站在软件工程师的角度而言微处理器和微控制器基本是没有差别的。如果有差别的话,微控制器由处理器,内存,片内外设组成。微处理器就是单单的 CPU ,运算时候使用的计算机部件。为什么会有这两个概念,从嵌入的发展而言,早期的嵌入式的开发需要考虑设备体积的大小,经常进行硬件的...

2020-04-13 21:54:36 114

原创 浅谈 c++ 智能指针的实现

内存泄漏动态申请堆空间,用完后不归还 c++语言里面没有垃圾回收机制 指针无法控制所指堆的空间的生命周期在c++软件平台中的智能指针指针生命周期结束时主动释放堆空间 一片堆空间最多只能有一个智能指针标识 杜绝指针运算和指针比较智能指针的设计方案通过类模板描述指针的行为 能够定义不同类型的指针重载指针特征操作符(*和-&g...

2020-04-13 16:28:13 235 1

原创 单片机系统驱动

对于一些单片机而言,系统的资源大多数情况下是有限的。为了充分的利用资源(节省成本),工程设计的时候往往会对资源进行不断的压榨。对于单片机而言它要做的事情大抵只有如下的几件:驱动外设 获取外设的信息 对获取到的信息进行处理在单片机里面常常会用到延时,为了充分的利用资源在设计的时候很少会用等待延时(除了驱动某些外设,对协议的时序要求特别高的情况)。为了更好的驱动整个单片机程序,我们有...

2020-04-13 15:37:25 1252

空空如也

空空如也

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

TA关注的人

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