- 博客(54)
- 资源 (35)
- 收藏
- 关注
转载 C++ 常用设计模式(学习笔记)
设计模式1、工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。1.1、简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品...
2019-08-14 00:55:41
397
原创 QT QPushButton实现进入、离开、点击三种效果
ui->pushButton->setStyleSheet("QPushButton{border-image: url(:/new/prefix1/image/Main_preset_normal.bmp);}" "QPushButton:hover{border-image: url(:/new/prefix1/imag...
2019-03-29 09:58:31
7191
1
原创 C++常用算法解析之快速排序
//方法一:经典方法void Qsort(int a[], int low, int high){ if(low >= high) return; int first = low; int last = high; int key = a[first]; //用数组的第一个数作为枢轴 while(first &...
2019-03-20 08:34:53
158
原创 单机QPS
一、什么是并发,什么是高并发并发,两个及以上的行为一起发生,比如你一边吃饭一边看电视高并发,多个行为(至于是多少,这个没有定数,你可以认为是100,1000)一起发生二、要多久才能处理完这些请求首先,我们需要明确两个基本点1、处理每个请求需要耗费时间,哪怕时间很短2、服务资源是有限的,不能一次性处理全部请求我们可以假定总并发请求数量为10000,每个请求的处理时...
2018-11-20 15:13:42
1789
转载 C++面试题之 static关键字
1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid msg(){ printf("Hello\n")...
2018-11-12 00:48:10
974
原创 C++面试题之 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不...
2018-11-12 00:44:39
929
转载 C++面试题之 观察者模式
观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。1.模式定义观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅...
2018-11-12 00:32:06
463
转载 C++面试题之 多态的实现原理
关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。对C++了解的人都应该知道多态调用是通过虚函数表(Virtual Table)来实现的。简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。 其中:B的虚函数表中存放着B::foo和B::b...
2018-11-12 00:24:33
1061
转载 C++面试题之 static_cast和dynamic_cast区别
在C++标准中,提供了关于类型层次转换中的两个关键字static_cast和dynamic_cast。一、static_cast关键字(编译时类型检查)用法:static_cast < type-id > ( expression ),该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性,它主要有如下几种用法:(1)用于基本数据类型...
2018-11-12 00:12:29
1823
转载 C++面试题之 QT信号和槽实现机制
Q1、概述 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会...
2018-11-11 23:57:06
13130
4
原创 gcc编译与gdb调试简要步骤
一、Linux程序gcc编译步骤:Gcc编译过程主要的4个阶段:l 预处理阶段,完成宏定义和include文件展开等工作;(.i)l 根据编译参数进行不同程度的优化,编译成汇编代码(.s.S)l 用汇编器把汇编代码进一步生成目标代码(.o)l 用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件格式:l gcc -E test.c//预处理阶段...
2018-11-07 14:00:48
1530
转载 QT5 QThread多线程
QT5 Thread线程继承QThread方式一.首先分析一下 QTimer Class与 Sleep()函数之间的秘密QTimer *t = new QTimer(*parent); //创建QTimer 对象t->start(_time); //计时开始每隔_time时间自动触发&QTimer::timeout信号t->stop(); //结束计时Sle...
2018-11-05 11:03:32
2876
原创 Qt元对象系统
元对象系统 系统介绍Qt 元对象系统(Meta-Object System)Qt的元对象系统基于如下三件事情:1. 类:QObject,为所有需要利用元对象系统的对象提供了一个基类。2. 宏:Q_OBJECT,通常可以声明在类的私有段中,让该类可以使用元对象的特性,比如动态属性,信号和槽。3. 编译器:元对象编译器(moc)为每个QObject子对象自动生成必要的代码来...
2018-11-05 09:19:52
236
转载 C++新特性 - 生成指定范围的随机小数或者整数
C++新标准,有一个叫随机数引擎的东西。包含于头文件 <random>随机数库由:引擎,分布组成。具体可参考《C++ primer》#include<random>#include<iostream>using namespace std; int main(){ default_random_engine e; unifo...
2018-10-29 09:33:28
1917
2
转载 经典C++笔试题目100例!
第一部分:C++与C语言的差异(1-18)1、C 和 C++ 中 struct 有什么区别? Protection行为 能否定义函数 C 无 否,但可以有函数指针 C++ 有 可以,默认是private 2、C++中的 struct 和 class 有什么区别?【参考答案】从语法上讲,class和struct做类型定义时只有两点区...
2018-10-25 16:55:52
3278
原创 学习区块链技术教程
以太坊DApp开发实战入门:http://t.cn/RmeEwxJ以太坊node.js电商实战:http://t.cn/RnmDmaDC#开发以太坊区块链的教程:http://t.cn/ReYjplCEOS智能合约与DApp开发入门:http://t.cn/RealN1Wjava开发以太坊区块链的教程,web3j开发详解:http://t.cn/RrpULLJPHP开发以太坊区...
2018-08-16 13:42:42
488
1
原创 QT程序 This application failed to start because it could not find or load the Qt platform plugin
QT配置好在自己机器上可以运行,但在别人机器上一直弹出“This application failed to start because it could not find or load the QT platform”,只需要两步即可解决:1.把QT下面的bin文件夹下所有的dll复制到exe同级目录下,尽管有些可能用不到;2.把QT下面的platform文件夹也复制到exe同级别目录...
2018-08-16 09:11:27
810
转载 Windows10 强制Visual Studio以管理员身份运行
Windows 10 的一个既安全又蛋疼之处是UAC的行为被改变了。以往在Windows 7中,只要关闭了UAC,自己的帐号又是本机管理员组的,任何程序都会以管理员身份启动。然而,在Windows 8上,我们不能关闭UAC,那样的话Metro程序就一个都启动不了了。作为微软技术的码农,我们通常要让Visual Studio在管理员权限下跑。虽然我们可以每次都在右键菜单里选择“以管理员身份运行”...
2018-08-03 17:00:09
1959
转载 Qt绘制圆形按钮
关于Qt下绘制按钮的文章不少,这里简单介绍一个怎么绘制圆形⭕️的按钮并在点击时候改变颜色的方法。先上图,如下:==》1 圆形按钮初始状态(未被点击且鼠标未移动到按钮上) ==》2 当鼠标移动到按钮上时的状态==》3、点击圆形按钮时的状态 其他的不多说了,直接上代码吧,具体细节请代码中的注释信息:#ifndef MAINWINDOW_H#define MA...
2018-08-01 12:21:43
7617
转载 Qt开发】QThread中的互斥、读写锁、信号量、条件变量
在gemfield的《从pthread到QThread》一文中我们了解了线程的基本使用,但是有一大部分的内容当时说要放到这片文章里讨论,那就是线程的同步问题。关于这个问题,gemfield在《从进 程到线程》中有一个比喻,有必要重新放在下面温习下:*******************************最后用一个比喻来总结下:1、一个进程就好比一个房子里有一个人;2、clone创建...
2018-07-24 17:10:23
1025
转载 QT C++ 单例类写法
前言所谓的单例模式,简单的总结有两点: 1.确保一个类只能创建一个实例 2.能够提供一个访问类对象的全局指针 为满足以上条件,需要做的事情很简单:第一步,将构造函数设置为私有,不让在其它地方可以创建实例;第二步,创建一个公有静态函数接口,在接口中创建类的实例并返回;这样一来,在其它类里面要调用单例类的函数的话,就可以通过调用静态函数拿到类的示例然后再调用类的其它公有函数。来看代码...
2018-07-24 16:56:25
2856
原创 QDateTime转换
QDateTime dateTime;QString strDateTime = dateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");// 从字符串转换为毫秒(需完整的年月日时分秒)datetime.fromString("2018-07-18 12:10:10:111", "yyyy-MM-dd- hh:mm:ss....
2018-07-18 12:15:10
16531
原创 QT打印log日志
void MainWindow::log(QString fileName, QString message){ file.setFileName(fileName); file.open(QIODevice::WriteOnly | QIODevice::Append); if(!file.isOpen()) { qDebug() <<...
2018-07-10 10:28:34
3249
转载 Mock方法介绍
1 现有的单元测试框架单元测试是保证程序正确性的一种有效的测试手段,对于不同的开发语言,通常都能找到相应的单元框架。借助于这些单测框架的帮助,能够使得我们编写单元测试用例的过程变得便捷而优雅。框架帮我们提供了case的管理,执行,断言集,运行参数,全局事件工作,所有的这些使得我们只需关注:于对于特定的输入,被测对象的返回是否正常。那么,这些xUnit系列的单元测试框架是如何做到这些的了?分析这些框...
2018-06-14 17:31:01
6555
1
转载 VS2013+QT5.3.1环境搭建过程与各种版本QT下载地址
1. 所有Qt版本下载地址:http://download.qt.io/archive/qt/2. 所有Qt Creator下载地址:http://download.qt.io/archive/qtcreator/3. 所有Qt VS开发插件下载地址:http://download.qt.io/archive/vsaddin/4. Qt相关下载大全http://download.qt.io/5.记...
2018-06-13 17:02:10
885
原创 VS中CString与char型数组相互转换问题
1. char str[]="hello"; CString cstr; cstr.Format(str);2. char str[100]; LPSTR p; CString cstr="hello"; p=cstr.getbuffer(); strcpy(str,p);
2018-04-23 09:26:56
10889
转载 虚函数和纯虚函数的区别
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plain copyclass A { public: virtua...
2018-04-11 17:15:52
151
转载 三种单例模式的C++实现
简介 因为在设计或开发中,肯定会有这么一种情况,一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致。这种情况下,单例模式是最恰当的解决办法。它有很多种实现方式,各自的特性不相同,使用的情形也不相同。今天要实现的是常用的三种,分别是饿汉式、懒汉式和多线程式。 通过单例模式, 可以做到:1. 确保一个类只有一个实例被建立
2017-11-11 12:04:02
156
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2017-11-08 23:12:08
155
原创 CreateMutex用法详解
HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针BOOL bInitialOwner, // 初始化互斥对象的所有者LPCTSTR lpName // 指向互斥对象名的指针);1. CreateMutex只是创建了一把锁, 这把锁你用来锁门还是锁抽屉还是锁
2017-11-08 13:09:59
53271
3
原创 C++中*与&的区别
*是取值运算符,对地址使用可以获得地址中储存的数值。 对于指针a,*a表示取a中的值&是地址运算符,对变量使用可以获得该变量的地址。 对于变量b,&b表示取b的地址在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;在调用时,*p是指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地
2017-10-30 14:01:57
21574
4
转载 使用WAMP搭建PHP本地开发环境
写在前面的话PHP是服务器脚本语言,所以需要在服务器上才能运行。作为新手,搭建服务器可能需要捣腾很久,有可能还搞不定。所以在入门阶段,为了把更多时间用在熟悉编程语言上,使用集成环境是最好也是最方便的选择。而本文就来介绍如何在windows平台搭建PHP开发环境。安装集成环境1、下载集成环境包 WampServer官网本人下载的是Wampserver 3.0.6
2017-10-24 10:33:30
2002
转载 windows 临界区的实现原理
转自:http://my.oschina.net/myspaceNUAA/blog/81244临界区概述:用于多线程的互斥访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入临界区后,其他试图访问的线程将被挂起,直到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到对临界区的互斥访问。(临界区中一般都是一个简短的代码段)
2017-09-22 09:35:37
858
1
原创 应用程序(exe文件)图标设置
第一步:首先当然要准备一个.ico图标文件(假定为qtdemo.ico),将其复制到工程目录当中(.pro文件所在的目录)。第二步:在QT Creator中Ctrl+N或File - New File or Project,选择General中的Text File,名称填写为.rc文件(如qtdemo.rc),在里面只用写一行:IDI_ICON1 ICON
2017-08-16 14:20:25
1988
原创 Qt打开外部程序
//1.通过调用系统函数 system("opt/myApp"); //这是linux下的,windows下可以用WinExec等函数 //2.通过QProcess,阻塞调用 QProcess::execute("/opt/myApp"); //绝对路径和相对路径都可以,windows下要带exe后缀,系统应用如记事本notepad可直接输入打开 //3.通过QProcess,非阻
2017-07-28 16:51:43
1550
原创 border-radius参数详解
border-radius,国内翻译成圆角,你可能以为这个属性就是用来画圆角,没错,但是除此之外,它还可以做点别的事情。radius其实指的是边框所在圆的半径,这个CSS3属性不仅能够创建圆角,还可以创建椭圆角(如图下图第7),把这些角按照不同的顺序和大小来展现,能够绘制成多种多样的图形。以下图例就是通过定义border-radius得到的效果。语法和解释border-radi
2016-06-01 11:46:55
1943
原创 ioctl函数
ioctl 函数 本函数影响由fd 参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。我们可以把和网络相关的请求划分为6 类:套接口操作文件操作接口操作
2016-05-13 11:11:32
338
转载 socket详解
1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind()函数3.3、listen()、connect()函数3.4、accept()函数3.5、read()、write()函数等3.6、close()函数4、socket中TCP的三次握手建立连接详解5、socket中TCP的四次握手释放连
2016-05-07 11:01:35
3334
原创 enum 在c++中的使用
枚举类型,顾名思义,“枚”作为量词,作“个”讲,那么枚举,就是一个一个的列举,如果一件事情能够被一个一个的列举,那么它的数量肯定就是有限的,否则是不能被一一列举出来的。所以枚举类型即为能被列举的常量的一个集合。在生活中,枚举的例子随处可见,比如礼拜几,那么就可以作为一个枚举变量。这个变量所存储的值,是有限的,且,能被我们所列举。再比较说,性别。它也可以作为一个枚举类型,我们知道,性别也就只有“
2016-05-07 10:53:04
3416
C#多线程编程实战(中文完整版).pdf
2018-10-29
TensorFlow+Keras深度学习人工智能实践应用.pdf
2018-10-16
AiDitron训练工具使用手册.pdf
2018-08-15
专业串口调试工具MyCommTool-v1_2
2018-08-09
YUV420帧转Bitmap
2018-04-26
halcon extension package programmer's manual(Halcon程序员手册英文原版)
2018-04-19
TCP-IP详解卷一:协议.pdf
2017-11-11
TensorFlow实战.pdf
2017-11-11
基于深度学习的计算机视觉.pdf
2017-11-11
Wampserver 3.0.6(64位)
2017-10-24
VLC官方播放器 Windows版
2017-10-18
KEPServerEx V4.0破解版及安装文档
2017-08-22
Cracking_the_Coding_Interview.pdf
2016-09-29
OpenCASCADE详细学习资料整理大全
2023-11-01
eigen3.4.0+vs2022+cmake使用vs2017编译Eigen3库 最新的Eigen3.4.0库
2023-01-18
阿拉伯数字印刷体识别样本图片.7z
2019-11-11
libevent参考手册(中文).pdf
2019-08-27
libevent参考手册(中文).pdf
2019-08-27
SkinSharp.rar
2019-07-09
北京大学数字图像处理(冈萨雷斯)课件.pdf
2018-10-27
keras2.0中文文档.pdf
2018-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人