自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++ 面试宝典——基础知识(二)

C++ 面试宝典——基础知识(二)一、为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数二、说一下函数指针三、说一下fork函数四、C++中析构函数的作用五、静态函数和虚函数的区别六、重载和覆盖七、说一说strcpy和strlen八、理解虚函数和多态九、++i和i++的区别,++i和i++的实现十、写个函数在main函数执行前先运行十一、以下四行代码的区别是什么?十二、C++里是怎么定义常量的?常量存放在内存的哪个位置?十三、 const修饰成员函数的目的是什么?一、为什么析构函数必须是虚函

2020-08-04 09:32:04 254

原创 C++ 面试宝典——基础知识(一)

C++ 面试宝典——基础语言(一)一、static关键字的作用全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量.静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化);作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。局部静态变量在局部变量之前加上关键字static,局部变量就成为一个局部静态变量。内存中的位置:静态存储区初始化:未

2020-07-23 16:46:08 282

原创 C++将图片转换为马赛克效果

C++将图片转换为马赛克效果1. 算法原理求出每个小方块内所有像素的颜色平均值,然后用来设置为该小方块的颜色。依次处理每个小方块,即可实现马赛克效果原图2. 整张图片处理成马赛克效果#include "stdafx.h"#include <graphics.h>#define N 8int main(){ //Step1: 加载图片 IMAGE image; loadimage(&image, L"C:\\test\\image.jpg"); initgra

2020-06-30 10:09:27 2563

原创 Qt实现透明窗体画线

Qt实现透明窗体画线通过电磁笔在签字版上实现透明窗体签字,带压感,支持mac、windows、linux,窗体设置//设置无边界窗口并置顶setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);setMouseTracking(true);//窗口设置透明setAttribute(Qt::WA_TranslucentBackground,true);setFixedSize(1280,800);笔迹画线vo

2020-06-11 16:32:28 928

原创 opencv旋转摄像头

opencv旋转摄像头打开摄像头顺时针旋转90°顺时针旋转180°顺时针旋转270°打开摄像头VideoCapture capture(cameraID);if (!capture.isOpened()){ return S_FALSE;}capture >> frame;imwrite("src.jpg", frame);顺时针旋转90°transpose(frame, frame);flip(frame, frame, 1);imwrite("dest1.jpg"

2020-05-29 14:54:10 2161

原创 模态对话框与非模态对话框

MFC中的模态对话框与非模态对话框模态对话框模态对话框创建模态对话框的关闭顺序非模态对话框模态对话框创建非模态对话框关闭顺序注意:模态对话框模态对话框创建MyDialog mydlg;mydlg.DoModal()当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。模态对话框的关闭顺序OnClose:按关闭符号X后,响应WM_CLOSE消息OnKi...

2020-04-27 15:30:53 447

原创 MFC窗体的常用设置

MFC窗体的常用设置设置窗体使用扩展模式设置窗体透明度任务栏隐藏设置为顶层窗口设置窗体使用扩展模式SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);设置窗体透明度COLORREF maskColor =...

2020-04-07 14:20:18 601

原创 C++常见设计模式——模板模式

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。常用的模式及其场景如下C++常见设计模式——模板模式模板模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。当多个类有相同的方法,并且逻辑相同,只是细节上有差异时,可以考虑使用...

2020-03-06 12:50:04 810

原创 C++常见设计模式——观察者模式

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。常用的模式及其场景如下C++常见设计模式——观察者模式观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都要得到通知并自动更新。观察者模式从根本上讲必须包含两个角色:观察者和被观察对象。被观察对象自身应该包含一个...

2020-01-10 09:10:32 1959

原创 C++常见设计模式——策略模式

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。C++常见设计模式——策略模式传统的策略模式实现使用函数指针实现策略模式策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。相比于使用大量的if…else,使用策略模式可以降低复杂度,使得代码更容易维护。...

2019-12-13 15:46:57 968

原创 C++常见设计模式——工厂模式

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。C++常见设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式工厂模式主要是为创建对象提供了接口。应用场景如下:a、 在编码时不能预见需要创建哪种类的实例。b、 系统不应依赖于产品类实例如何被创建、组合和表达的细节。简单工厂模式主要特点是需要在...

2019-11-18 11:47:13 893

原创 C++常见设计模式——单例模式

C++常见设计模式——单例模式单例模式懒汉单例模式非线程安全的懒汉单例模式线程安全的懒汉单例模式返回一个reference指向local static对象饿汉单例模式设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。单例模式单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类...

2019-10-31 16:14:44 1009

原创 用两个队列实现一个栈

我们通过一系列栈的压入和弹出操作来分析用两个队列模拟一个栈的过程。如图(a)所示,我们先往栈内压入一个元素A。由于两个队列现在都是空的,我们可以选择把A插入两个队列的任意一个。不妨插入queue1。接下来继续往栈内压入B、C两个元素,我们把它们都插入queue1。这个时候queue1包含3个元素A、B和C,其中A位于队列的头部,C位于队列的尾部。  现在我们考虑从栈内弹出一个元素。根据栈的后入...

2019-10-25 15:51:37 3015

原创 用两个栈实现一个队列

题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。template <typename T> class CQueue{public: CQueue(void); ~CQueue(void); void appendTail(const T&...

2019-10-25 15:16:51 1163

原创 1024的那些事儿

1024程序员节节日意义:拒绝加班

2019-10-24 09:42:20 1373

原创 static关键字的作用

static关键字的作用一、全局静态变量二、局部静态变量三、静态函数四、类的静态成员变量五、类的静态成员函数六、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?一、全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量.内存中的位置:静态存储区,在整个程序运行期间一直存在。初始化:...

2019-10-09 14:15:28 1115

原创 C++在空类下默默编写并调用了哪些函数

C++在空类下默默编写并调用了哪些函数• default构造函数和析构函数• copy构造函数和copy assignment操作符• 总结什么时候empty class不再是个空类呢?当C++处理之后。如果没声明,编译器就会给它声明一个copy构造函数、一个copy assignment操作符和一个析构函数。此外如果没有声明任何构造函数,编译器也会给你声明一个default构造函数。所有这些函...

2019-09-27 10:37:34 1141

转载 linux c++ 服务器端开发面试必看书籍

linux c++ 服务器端开发面试必看书籍打算慢慢把这些书看完。题外话: 推荐一个 github 上的 开源书籍,有各种语言版本的,建议看 英文版 ,当然也有 中文版 非常之棒!!一、算法基础系列数据结构基础(C语言版)》朱仲涛 译《剑指Offer》《编程之美》《编程珠玑》《CareerCup-Top 150 Questions 4th》《[算法导论].(美国)Cormen.扫...

2019-09-18 16:55:02 1323

原创 C++的社会繁衍

把 C++ 想象成人类社会。访问权限、继承、友元将无比真实的反应人类社会中的种种关系。一、类内部访问权限+---------+|class | --> 人+---------+|public | --> 你能干啥|protected| --> 你留下啥|private | --> 你藏了啥+---------+|friend | --&g...

2019-09-12 15:41:55 1270

原创 C++获取、设置鼠标坐标并移动鼠标

CPoint point;GetCursorPos(&point); //获取鼠标位置SetCursorPos(1, 1); //设置鼠标位置//mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);Sl...

2019-08-12 16:49:00 3483

原创 使用dshow如何打开指定摄像头

使用dshow如何打开指定摄像头通过设备VID/PID找到指定摄像头设备通过设备名打开指定摄像头设备绑定设备过滤器最近做了一个关于摄像头的项目,需要适配WindowsXP及以上系统,需要兼容XP系统就打算用dshow技术,顺便把相关技术学了一遍,这里给大家分享一下如何打开指定摄像头设备。通过设备VID/PID找到指定摄像头设备HRESULT GetCameraId(){ ICreateD...

2019-08-12 11:38:38 2198 1

原创 线程

1、 多进程的优点:可以执行多任务,进程之间切换频繁时,CPU效率比较低,进程间通信较复杂多线程(同一个进程里面的多线程)多线程可以实现多任务,并且通信较为简单2、不同的进程地址空间是独立的同一个进程的不同线程共享地址空间(堆段、数据段、代码段),栈段是独立的原来的进程可以创建一个新的线程,把原来的进程称为是主线程,新创建的线程称为是子线程3、进程和线程的区别和联系进程和线程都是动态的

2017-01-24 19:37:40 1518

原创 进程

1、 什么是进程进程是一个执行的过程进程是一段独立的程序,在某个数据集合上的一次运行的过程./a.out(回车)产生了一个进程2、进程和程序的区别和联系什么是程序----程序是写好的代码,是一个文件,可以保存进程是不能保存的,程序是可以保存的进程是动态的,程序是静态的程序经过编译运行产生进程进程是操作系统分配资源的最小单位 了解 init—-PID == 1 操作系统第一个进程

2017-01-12 16:28:42 2122

原创 浅谈广播、组播

一 、广播广播地址为 最大的主机地址,整个网段内都能收到广播数据例如192.168.0.0网段,广播地址为192.168.0.255广播设置发送端设置socket属性并设置发送地址为广播地址 int on = 1; setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));接受端,正常接收广播数据send.c

2017-01-09 09:59:31 1719

原创 并发服务器

1 进程模型 通过fork方式创建一个子进程,由子进程处理一个客户端连接, 此种方式在大并发下非常耗费系统资源,不建议使用 参考代码 server.c#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>

2017-01-04 17:46:57 1501

原创 UDP

一、UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。二、UDP 客户端&服务端1、 使用的系统调用ssize_t sendto(int socket, void *message, siz...

2017-01-01 10:36:44 1526

原创 基于TCP的socket编程

一、 预备知识1 、socket1 是网络编程的一个编程接口,是一个特殊的文件描述符并不仅限于tcp/ip,也可用于本机通讯2 流式套接字TCP ,数据报套接字 UDP,原始套接字可直接操作网络层发送数据3 套接口位于应用层和传输层直接2、 IP地址192.168.1.123 ->可以转换为32为无符号正数,每一组数字代表一个字节分为 A B C D四类,D类...

2016-12-26 13:12:49 1599

原创 TCP/IP协议

1.网络的体系结构Ⅰ.网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。Ⅱ.每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务。Ⅲ.网络体系结构即指网络的层次结构和每层所使用协议的集合。2.OSI参考模型及TCP/IP参考模型通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信...

2016-12-23 16:50:25 2005

原创 (十五)存储类、链接和内存管理

一、存储模型1、变量:是对程序中数据的存储空间的抽象存储期:变量在内存中的保存时间作用域:程序的那些部分通过变量名来使用变量链接点:程序的那些部分通过变量名来使用变量2、生命周期与作用域局部变量:生命周期:从定义开始,到该模块结束作用域:该模块内static修饰的局部变量:生命周期:从定义开始,到程序结束作用域:该模块内全局变量:生命周期:从

2016-12-22 18:08:18 1525

原创 (十四)C语言高级编程

一、指针1、地址:内存的基本单元是字节,每个字节都有一个编号,这个编号就称为地址指针:地址就是指针指针变量:专门用来存放地址的变量2、定义:存储类型 数据类型 *指针变量名存储类型:指针变量的存储类型数据类型:指针所指向的变量的数据类型指针的类型:数据类型*int *p = NULL; //定义指针时一定要对指针进行初始化int a = 10;int *

2016-12-21 15:35:16 1731

原创 (十三)GCC编辑器和GDB调试工具

一、GCC编辑器1、GCC编辑器的编译流程预处理-->编译-->汇编-->链接. c——c语言源代码. h——程序所包含的头文件. i——已经预处理过的c源代码文件. s——汇编语言的源代码文件. o——编译后的目标文件——不可执行的二进制文件2、gcc指令的一般格式:gcc[ 选项 ] 要编译的文件 [ 选项 ] [ 目标文件 ]-预处理阶段:处理所有

2016-12-21 14:57:31 1609

原创 (十二)Shell编程基础

一、Shell基础1、Shell脚本语言是解释型语言2、Shell脚本的本质:Shell命令的有序集合3、作用:简短的表达复杂的操作,操作的对象一般是文件和目录,可以减轻工程管理人员的工作量4、基本过程①建立shell文件②赋予shell文件执行权限③执行shell文件二、Shell变量及环境变量1、shell允许用户建立变量存储数据,但不支持数据类型,将任

2016-12-21 10:12:01 1487

原创 (十一)Shell基本命令 Linux文件系统 Linux网络配置管理

1、Shell简介2、Shell命令格式与编辑3、Shell特殊字符4、Shell基本系统命令·5、用户管理6、进程管理一、Shell简介        1、Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互        2、Shell是一个命令行解释器,将用户命令解释为操作系统所能理解的指令,实现用户与操

2016-12-19 16:42:19 2259

原创 (十)Linux操作系统基础

一、Linux简介1、操作系统:管理和控制计算机硬件和软件资源的计算机程序2、Linux特点:使用自由 研究自由 散布改良自由 (安全性稳定性)3、应用领域:嵌入式应用 服务器 电影娱乐业4、GNU——开发自由软件计划GPL——协议 作用:保障GNU计划更好的实行,避免gcc、make成为别人的专利5、嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对

2016-12-19 16:35:32 1777

原创 (九)结构体共用体

1、大小端大端存储:低字节数据存放在高地址,高字节数据存放在低地址小端存储:低字节数据存放在低地址,高字节数据存放在高地址#includeint main(){ int a = 0x12345678; char *p = NULL; p = &a; printf("*p=%#x,p=%p\n",*p,p); return 0;}2、结构体可以描述一个事物的详细信

2016-12-15 19:08:57 1565

原创 (八)函数

1、malloc头文件:#include void *malloc( size_t size ) ;1 #include 2 #include 3 #include 4 5 int main()6 {7 char *p = NULL;8 p = (char *)malloc(100);9 if(NULL == p)10 {11 printf(

2016-12-15 18:56:23 1578

原创 (七)指针

1、基本概念地址:内存的基本单元是字节,每个字节都有一个编号,这个编号就称为地址指针:地址就是指针指针变量:专门用来存放地址的变量定义:存储类型 数据类型 *指针变量名; 存储类型:指针变量的存储类型数据类型:指针变量所指向的变量的数据类型指针的类型:数据类型*&:地址运算符*:取指针变量所指向的变量的内容指针在内存当中的大小都为4字节(32位操作系统)

2016-12-15 18:38:44 1432

原创 (六)数组

一、数组概念:由同种数据类型的若干个数据组成的集合;1、数据类型相同2、内存连续定义:存储类型 数据类型 数组名[元素个数];存储类型:auto register extern static数据类型:数组元素的数据类型元素个数:必须是确定的数eg: int a[10];注: 数组名不能和变量名重名;数组元素:数组名[下标];下标从0开始;数组名是数组

2016-12-15 18:27:26 1495

原创 (五)控制语句

控制语句:顺序、分支、循环(一)分支结构1、二分支选择结构if(表达式){语句块;}else{语句块;}2、阶梯形式if(表达式1){语句1;}else if(表达式2){语句2;}else if(表达式3){语句3;}……else{语句n;}3、嵌套形式if(表达式1)

2016-12-15 17:06:45 1418

原创 (四)运算符及输入输出

一、运算符算术运算符、关系运算符、逻辑运算符、位运算符1、算术运算符+ - * / % ++ --%:小数没有取模运算++:++在前:先自加,后赋值++在后:先赋值,后自加2、关系运算符> = if(a == 5) 建议写成if(5 == a),以防写成if(a = 5)3、逻辑运算符&&:两边同时为真时,其值才为真截断法则:当&&左边为假时,其

2016-12-14 20:15:32 2047

EasyX_20200520(beta).exe

c++图形库可以帮助 开发者快速上手图形和游戏编程,支持环境:XP/Win7/Win8/Win10,支持IDE:vs2008~vs2019

2020-06-30

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

TA关注的人

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