自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 概念

1、内联函数的概念和作用是什么?内联函数是指在函数调用处直接嵌入函数体的函数,用关键字inline来修饰。关键字inline的作用是:请求编译器尽可能将函数调用形式变为内联(并不一定能成为内联函数)。成为内联函数的主要优势为以内存空间换编译/运行时间.内联函数的限制:(1)、函数体内不允许有循环语句或者选择语句。(2)、函数体里不能出现递归。(3)、函数体里不能有静态局部变量。...

2020-01-15 20:12:27 256

原创 C++概述

以前的开发模式为软件直接控制硬件,例如单片机项目等,耦合度较高。嵌入式为:在软硬件之间插入操作系统,软件访问硬件时先经过操作系统,随后通过操作系统访问硬件。C语言和C++的区别:C语言特点:C语言提出指针类型访问硬件,运行效率高。C++特点:代码复用性好(继承)、维护性好(封装)、扩展性好(多态)面向结构的程序设计vs面向对象程序设计面向结构的程序设计主要解决单...

2020-01-11 19:42:28 174

原创 stm32f429 中通过基本定时器中断控制LED灯亮一秒、灭一秒

stm32f429中基本定时器有两个,通用定时器有十个,高级定时器有两个。其中基本定时器为TIM6和TIM7。此处通过编写TIM7定时中断控制LED灯亮灭,TIM6与之类似。首先可以新建一个.c 和.h 文件,在.c文件中进行TIM7函数定义等,如下图所示:#include "bsp_tim_basic.h"static void BASIC_TIMx_Mode_Config()...

2019-01-29 22:26:43 9178

原创 面向对象的定义、特点以及与面向过程的比较

什么是面向对象:面向对象将系统看成通过交互作用来完成特定功能的对象的集合,每个对象用自己的方式来管理数据。也就是说,只有对象内部的代码能够操作对象内部的数据。面向对象和面向过程的对比:面向对象的优点:可通过继承、封装、多态等方法降低程序的耦合度,并结合设计模式让程序更容易修改和扩展,并且易于复用。面向过程的缺点:不易维护、灵活性差、不易拓展,更谈不上复用,由于客户的需求多变,导致程...

2018-08-20 20:46:51 1128

原创 关于qt里一些简单的控键的使用

在qt里通过制作页面可以制作一些简单的选择键----单选及多选框等;接下来将为大家简述一下这两种控键的使用:同之前一样,在qt的界面文件中,我们可以将对应的控键选择好拖动到对应的界面文件里,并且为每一个控键取好对应的名字,便于之后代码的书写。由于控制这些按键的代码相对简单,在这里我们就在源文件中进行简单的书写。 #include "widget.h"#include "ui_w...

2018-08-19 17:00:17 338

原创 运用qt制作客户端及服务器页面

首先,我们可以先在qt里制作一个简单的服务器页面,可以如下图:对于客户端端口及客户端地址改变该对象的名称,使之与接下来代码中所用的名称相对应。在这里,我将客户端端口的对象名设为portLineEdit,客户端地址的对象名为addressLineEdit;注意:在写服务器和客户端时需要在.Pro文件中增加network。 接下来在widget.cpp 文件中创建一个服务器对象,为...

2018-08-18 20:43:19 4094

原创 C++中设计模式中的装饰模式

装饰(Decorator)模式又称为包装模式,可以通过一种对客户端透明的方式来扩展对象的功能, 是继承关系的一个替换方案。装饰模式把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要使用对象时,客户端就可以有选择地,按顺序地使用装饰功能包装对象, 动态地给一个对象添加一些额外的功能。就增加功能来说,装饰模式 比生成子类的方式更为灵活,再不改变接口的前提下, 可以增强类的性...

2018-08-17 11:20:16 155

原创 运用qt实现计算器页面

首先我们在界面文件中画出我们想要的 计算器的模型, 如下图所示:然后,对于每一个按键进行修改名称,使之便于后续代码的书写。之后我们对每一个按键转到槽,在源文件中进行对每个按键的功能进行书写:对于除“=”以外的按键,都较容易实现他们的功能,对于“=”号按键,将在此按键中实现计算器加减乘除的所有功能。void Widget::on_oneButton_clicked(){...

2018-08-16 20:47:52 4820 2

原创 mysql创建表用于银行储蓄系统

-- 创建表用于保存账户create table my_account(id int unsigned not null primary key auto_increment,account varchar(16) not null unique,name varchar(10) not null)charset utf8;--插入数据insert into my_account...

2018-08-15 16:48:08 3409

原创 关于mysql的一些基本操作

--创建用户create user "aaaa"@"localhost" identified by "aaaa";--查询数据库show databases;--使用数据库use mysql;--查询表show tables;-- 查询用户select user from user--修改密码set password for "aaaa"@"local...

2018-08-14 13:47:03 114

原创 C++中的代理模式

C++中代理模式也称为Proxy模式,是构造性的设计模式之一,它可以为其他对象提供一种代理,以控制对这个对象的访问。、所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后)完成某些特别的处理。代理模式一般会有以下三个角色:1、抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口。2、真实...

2018-08-13 11:22:18 660

原创 C++中的建造者模式

建造者模式也成为Builder模式或者生成器模式。建造者模式是一种对象创建型模式,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,可以通过子类继承和重载的方式动态地创建具有复合属性的对象。建造者模式的作用是将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示。#include<iostream>using namespace std;cla...

2018-08-13 09:38:11 453

原创 C++设计模式

设计模式:问题,解决方案和环境。设计模式分类主要为创建型模式、结构型模式和行为型模式。设计模式的基本原则:开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则、合成复用原则、迪米特法则。简单工厂模式:通过专门定义一个类来创建其他类的实例。工厂方法模式同样属于类的创建型模式,又被称为多态工厂模式。抽象工厂模式:可以创造多个产品组的产品对象。三种工厂模式的区别:简单工厂:...

2018-08-11 20:55:14 124

原创 单例模式

单例模式是一种对象创造型模式,使用单列模式可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。单例模式的设计步骤:1、构造函数私有化。2、提供一个全局的静态方法。3、在类中定义一个静态指针,指向本类变量的静态变量指针。单例的实现可以分为懒汉式和饿汉式,主要区别在于对象的创建时机的不同。懒汉式是在第一次使用对象时创建对象的,而饿汉式则在程序启...

2018-08-11 20:41:14 110

原创 pthread

 线程的优点:不占用资源,切换效率高,开销小,不存在通信.pthread_create();创建一个线程 参数为 线程号 线程属性 线程函数 参数pthread_join();该函数表有两个作用,一是回收线程资源,二是阻塞线程 但在循环结构中不推荐用此结构pthread_detach();线程分离函数 自动回收线程资源 通常用于循环结构中最好不要在线程中使用sleep函数,slee...

2018-08-09 21:16:59 792

原创 关于进程的一些知识点

进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。进程与程序的不同点:1、程序是放到磁盘的可执行文件   进程是指程序执行的实例。2、进程是动态的,程序使静态的。3、进程是暂时的,程序使长久的。4、进程与程序组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。5、进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系...

2018-08-08 10:17:27 279

原创 集合算法

set_union:  构造一个有序序列,包含两个有序序列的并集。 set_intersection:  构造一个有序序列,包含两个有序序列的交集。 set_difference:  构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。 #include<iostream>#include<vector>using nam...

2018-08-07 21:09:55 226

原创 C++中deque的应用

创建一个数组,将数组任意初始化(包含3 ),将其中等于3 的数字删除后再将数组里面的数打印出来。#include<iostream>#include<deque>using namespace std;int main(){ int array[]={3,2,3,4,6,2,4,3,6,3}; deque<int> d1(array,array...

2018-08-06 17:08:39 364

原创 Array异常处理

设计一个数组类MyArray,重载【】操作,数组初始化时,对数组的个数进行有效检查。1、index<0 抛出异常eNegative2、index=0抛出异常eZero3、index>1000抛出异常eTooBig4、index<10抛出异常eTooSmall5、eSize类是以上类的父类,实现有参数构造、并定义virtual void printfErr()输...

2018-08-05 21:11:10 355

原创 C++中的异常处理及捕捉

抛掷异常的程序段:通过throw语句抛出异常void fun{ throw();}捕获异常的程序段:将可能出现异常的语句放在try里try{};catch{};int Div(int x,int y);  //可以抛出任何异常int Div(int x,int y) throw(); //不可以抛出任何异常 int Div(int x,int y...

2018-08-04 11:15:51 768

原创 C++中类型的强制转换

C++中类型的强制转换分为以下四种:1、static_cast<T>(expr);2、reinterpret_cast<T>(expr);3、const_cast<T>(expr);4、dynamic_cast<T>(expr);其中前三种为编译时检查,最后一种为运行时检查。static_cast<T>(expr)...

2018-08-03 21:07:25 191

原创 C++中冒泡排序法

在C中,我们也写过冒泡排序法,但由于类型固定,C中的冒泡排序法不能有效的对不同类型的字母或数字排序。在C++中,我们通过用模板函数来实现不同类型的冒泡排序法的同时简化代码。代码分为以下几个部分:1、通过get函数从键盘上输入你想排序的数。2、通过swap实现交换3、通过print函数将大小顺序打印出来4、通过bubble_sort函数实现冒泡排序。#include<...

2018-08-02 15:19:35 1012

原创 C++中提供函数模板

C++中,为了方便书写提供了模板,模板分为函数模板以及类模板。函数模板,实际上是建立一个函数模型,它的返回类型及参数类型没有确定。例:template <typename T>T add(T x,T y){ return x+y;}当模板函数遇到普通函数,优先调用普通函数#include<iostream> //当模板函数...

2018-08-01 21:06:43 121

原创 计算工资

//公司有四种职位 经理(Manager) 技术人员(Technician) 销售(SaleMan) 销售经理(SaleManager)//每增加一个人,工号加1//薪资:经理 8000 技术人员 300/天 销售 总额*4% 销售经理 部门销售额*2%+4000 在代码中,由于代码较多,采取分文件写的方式,首先申明头文件。   写了一个名为“company.h”的头文件,将基类以及派...

2018-07-31 20:07:52 343

原创 C++中函数重写 重载与重写的区别

重载:   (静态多态)1、同一作用域2、子类无法重载父类函数,父类同名函数将被隐藏3、重载是在编译期间根据参数类型和个数决定的重写:   (动态多态)1、在子类中定义与父类中原型相同的函数2、函数重写只发生在父类与子类之间3、使用virtual关键字申明后能产生多态4、运行期间根据具体对象类型决定调用的函数多态满足的三个条件:1、要有继承   2、要有虚函...

2018-07-30 19:27:50 2366

原创 通过C++方式,建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle 求出面积并获取相关信息。

具体要求如下:(1)形状类Shape(a)保护数据成员double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。(b)公有成员函数构造函数Shape(double _x,double _y):用_x、_y分别初始化x、y。double G...

2018-07-29 09:55:02 2544

原创 C++中的继承与多继承

一个类有多个直接基类被称为是多继承public的继承方式基类中所有public成员在派生类中为public属性基类中所有protected成员在派生类中为protected属性基类中所有private成员在派生类及其他类中不能访问protected的继承方式基类中所有public成员在派生类中为protected属性基类中所有protected成员在派生类中为prote...

2018-07-28 21:25:07 204

原创 通过C++对String进行重载

首先,我们将所需写重载函数和其他成员变量放在一个头文件中。函数重载的判断标准(1、参数个数不同  2、参数类型不同  3、参数顺序不同)注意:函数的返回值不可作为函数重载的判断标准。在这里存在对运算符的重载,在运算符的重载前,需要加关键字operator在这里对引用及对象要关注一下:引用返回的是变量,可以对他进行赋值。对象返回的是变量里面的值,不可以再次进行修改。不能重载的运算...

2018-07-27 11:34:10 766

原创 homework

#include<iostream>#include<math.h>#include<string.h>using namespace std;class F{private: double x[5]; int m_n,m_k,m_h; double m_y;public: F(double a[],int n,int k,int h);...

2018-07-26 16:42:57 252

原创 关于建立birthday和student的代码

#include<iostream>#include<string.h>using namespace std;//建立一个Birthday的类class Birthday{private:    int m_year;    int m_month;    int m_day;public:    Birthday(int y,int m,int ...

2018-07-25 15:29:19 366

转载 判断一个点在圆内还是圆外

首先可以先确定一个点的申明方式,后续可以通过点来确定圆心。#ifndef _POINT_H#define _POINT_Hclass Point{    private:         int m_x;         int m_y;    public:        void setxy(int x,int y);        int getdistance(Poi...

2018-07-23 23:54:21 6179

原创 头文件书写方式

在我们写代码的过程中,通常会因为代码的多、乱、复杂而导致代码的可读性差,此时我们将选择分文件来书写我们的代码,使我们的代码可读性增强,同时便于扩展。#ifndef _STUDENT_H#define _STUDENT_Hclass Student{private:    char m_name[10];    int m_age;public:    void set_name...

2018-07-23 00:03:42 1492

原创 通讯录

该通讯录可能存在部分问题,希望大佬帮忙改进。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#define ERROR 0#define...

2018-07-21 23:19:59 154

原创 C++常量const与define的区别

C++中常量const不占用内存空间.const 存在就近原则const int *p; const在这里靠近*,p中内容不能改。int * const p; const 在这里靠近p,所以p所指位置不能变化。const int * const p;无论是所指内容还是位置都不能被改变。/*#include<iostream>using namespace std;...

2018-07-19 18:39:49 216

原创 C++中函数重载

函数重载的判断标准1、参数个数不同。2、参数类型不同。3、参数顺序不同。PS:返回值不作为重载的判断标准。//函数重载#include<iostream>using namespace std;int add(int x,int y){    return x + y;}double add(double x,double y){    retur...

2018-07-18 22:28:39 146

空空如也

空空如也

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

TA关注的人

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