- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 计算机网络
计算机网络 计算机网络基础(一) 计算机网络基础(二)IP地址分类 计算机网络基础(三)子网划分及子网掩码计算方法 计算机网络基础(四)TCP协议中的三次握手和四次挥手(图解) 计算机网络基础(五)ARP协议的工作原理 虚拟机的几种网络方式详解(桥接、nat、Host-only) HTTP,SOCKET,TCP/IP 之间的关系...
2018-08-30 17:56:59 434
原创 UE4 变量 函数 蓝图控件 事件
变量声明UPROPERTY() int Variable;函数声明UFUNCTION() void SetFunction();事件和绑定头文件声明UFUNCTION() void OnClickedBtnScene();初始化的时候添加BIND_EVENT_DYNAMIC(BtnScene, OnClicked, UBG...
2018-08-30 17:15:12 1283
原创 gRPC protobuf Protocol Buffer
gRPC初体验gRPC编码初探(java)gRPC 官方文档中文版gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库...
2018-08-24 11:05:01 237
原创 Three.js教程索引
官方开源Library都是一些展示模块,小Demo官方文档官方编辑的API和介绍文档官方Demo入门和常用的exampleThree.js入门指南一个免费的入门指南书WebGL中文网前面几章免费后面收费。英文博客一个老外学习Three.js的博客 ...
2018-08-23 20:35:10 631
原创 Three.js开发指南随书源码下载地址
第二版下载地址链接:http://pan.baidu.com/s/1c1UjShq 密码:e8eq第一版下载地址链接:http://pan.baidu.com/s/1hqq0dIs 密码:znw5
2018-08-23 20:27:34 3938 1
原创 qml如何打开文件对话框
import QtQuick 2.0import QtQuick.Window 2.2import QtQuick.Controls 2.0import QtQuick.Dialogs 1.2MenuItem{ id: leftDockMenu iconSource: "res/fileText.png" Rectangle { id: mai...
2018-08-23 16:37:26 3345
原创 C++中string、char *、char[]的转换
string转char*。 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); 1.data()方法,如:string str = "hello";const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式 同时有一点需要说明,这里在d...
2018-08-23 13:38:48 131
原创 Qt浅谈之四十九俄罗斯方块(代码来自网络)
https://blog.csdn.net/taiyang1987912/article/details/51055817
2018-08-17 16:54:48 753
原创 Qt的鼠标
Qt的鼠标移入移出事件https://blog.csdn.net/u012997311/article/details/53027521QT 中使用 Windows API----SendMessage() 进行窗体间消息传递https://blog.csdn.net/qiangzi4646/article/details/75095894qt收发windows消息(不同进程之间)...
2018-08-16 12:13:22 160
原创 How to Set up Qt Creator for UE4
http://api.unrealengine.com/CHN/Platforms/Linux/BeginnerLinuxDeveloper/SettingUpQtCreator/index.html
2018-08-16 10:56:28 620
原创 Linux下使用QT编写和调用动态链接库(.so文件)
Linux下Qt创建和调用共享库文件.so动态链接库的好处是不言而喻的,一个稍微复杂一点的程序,顶层设计的时候良好的类库划分可以让工作变得很简单,而将不同类编译成共享库文件可以实现程序的模块化,提高代码复用程度,在保证接口兼容的情况下更新一个程序只用更新共享库(Windows下是dll,Linux下常见的是so)即可。下面以Linux下的Qt Creator这个IDE为例,讲述Qt(严格意...
2018-08-13 14:37:07 3253
原创 设计模式C++实现(16)——状态模式
状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。它有两种使用情况:(1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。(2)一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。本文的例子为第一种情况,以战争为例,假设一场战争需经历四个阶段:前期、中期、后期、结束。当战争处于不同的阶段,战争的行为是不一样的,也就说战争的行...
2018-08-10 22:51:01 127
原创 设计模式C++实现(15)——观察者模式
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。它还有两个别名,依赖(Dependents),发布-订阅(Publish-Subsrcibe)。可以举个博客订阅的例子,当博主发表新文章的时候,即博主状态发生了改变,那些订阅的读者就会收到通知,然后进行相应的动作,比如去看文章,或者收藏起来。博主与读者之间存在种一对多的依赖关...
2018-08-10 22:48:19 96
原创 设计模式C++实现(14)——职责链模式
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。其思想很简单,考虑员工要求加薪。公司的管理者一共有三级,总经理、总监、经理,如果一个员工要求加薪,应该向主管的经理申请,如果加薪的数量在经理的职权内,那么经理可以直接批准,否则将申请上交给总监。总监的处理方式也一样,总经理可以处理所有请求。这就...
2018-08-10 22:46:10 109
原创 设计模式C++实现(13)——中介者模式
中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式的例子很多,大到联合国安理会,小到房屋中介,都扮演了中间者的角色,协调各方利益。 本文就以租房为例子,如果没有房屋中介,那么房客要自己找房东,而房东也要自己找房客,非常不方便。有了房屋中介机构就方便了,房东可以把要出租的房屋信息放到中介...
2018-08-10 22:45:00 100
原创 设计模式C++实现(12)——备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态[DP]。举个简单的例子,我们玩游戏时都会保存进度,所保存的进度以文件的形式存在。这样下次就可以继续玩,而不用从头开始。这里的进度其实就是游戏的内部状态,而这里的文件相当于是在游戏之外保存状态。这样,下次就可以从文件中读入保存的进度,从而恢复到原来的状态。这就是备忘录模式...
2018-08-10 22:42:59 227
原创 设计模式C++实现(11)——装饰模式
装饰者模式主要实现的功能是动态的给某一个类添加一些额外的功能,它是一个锦上添花者。想要扩展功能,装饰者提供了有别于继承的另外一种选择。设计模式的原则是多用组合少用继承。uml 图: 特点: 1. 装饰者和被装饰者拥有相同的超类型(可能是抽象类也可能是接口) 2. 可以用多个装饰类来包装一个对象,装饰类可以包装装饰类或被装饰对象 3. 因为装饰者和被装饰...
2018-08-10 12:28:53 158
原创 设计模式C++实现(10)——桥接模式
书上定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。考虑装操作系统,有多种配置的计算机,同样也有多款操作系统。如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展,减少它们的耦合度。当然了,两者之间有标准的接口。这样设计,不论是对于计算机,还是操作系统都是非常有利的。下面给出这种设计的UML图,其实就是桥接模式的UML图。 给出C++的一种实现...
2018-08-10 11:09:58 90
原创 设计模式C++实现(9)——享元模式
举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子。现在要实现一个围棋程序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括棋子的颜色、形状、位置等信息,另外再定义一个棋盘的类,成员变量中有个容器,用于存放棋子的对象。下面给出代码表示: 棋子的定义,当然棋子的属性除了颜色和位置,还有其他的,这里略去。这两个属性足以说明问题。//棋子颜色...
2018-08-10 10:17:05 149
原创 设计模式C++实现(8)——代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。角色: Subject: 抽象角色。声明真实对象和代理对象的共同接口。 Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封...
2018-08-10 10:06:16 109
原创 QT生成动态链接库
https://blog.csdn.net/qq_34837137/article/details/52277447https://blog.csdn.net/zzyy0929/article/details/78529244https://blog.csdn.net/lywzgzl/article/details/42805991
2018-08-09 22:00:56 749
原创 设计模式C++实现(7)——外观模式、组合模式
外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来。客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构。DP一书的定义:为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析、语法分析、中间代...
2018-08-09 21:41:25 256
原创 设计模式C++实现(6)——建造者模式
建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。下面给出建造者模式的U...
2018-08-09 21:38:00 88
原创 设计模式C++实现(5)——原型模式VS模板方法模式
原型模式 所谓的原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 解释:从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。应该注意概念中的拷贝两个字,这是原型模式的精髓所在。原型模式实行的关键就是clone函数。 例子:简历复制,之前没有复印机的时候,完全手写,需要写很多份重复的简历,如果简历有错,改起来也是相当费劲了。后来...
2018-08-09 21:36:31 326
原创 设计模式C++实现(4)——单例模式
单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。 UML图: 代码://Singleton.hclass Singleton {public: static Singleton* GetInstance();private: Singleton...
2018-08-09 11:15:11 112
转载 设计模式C++实现(3)——适配器模式
适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它包括类适配器和对象适配器,本文针对的是对象适配器。举个例子,在STL中就用到了适配器模式。STL实现了一种数据结构,称为双端队列(deque),支持前后两段的插入与删除。STL实现栈和队列时,没有从头开始定义它们,而是直接使用双端队列实现的。这里双端队列就扮演了适配器的角色。队列用到了...
2018-08-09 11:06:26 101
转载 策略模式vs工厂模式的区别
定义:工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作;工厂类负责判断、控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了,访问该父类,得到我们想要的结果策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。在软件开发中也常常遇到类似的情...
2018-08-09 11:02:21 2294
转载 设计模式C++实现(2)——策略模式
对外的接口一样,只是各自实现上存在差异。用策略模式来封装算法,效果比较好。下面以高速缓存(Cache)的替换算法为例,实现策略模式。//抽象接口class ReplaceAlgorithm{public: virtual void Replace() = 0;};//三种具体的替换算法class LRU_ReplaceAlgorithm : public ReplaceAl...
2018-08-09 01:35:08 88
转载 设计模式C++实现(1)——工厂模式
工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。首先介绍简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。有点抽象,举个例子就明白了。有一家生产处理器核的厂家,它只有一个工厂,能够生产两种型号的处理器核。客户需要什么样的处理器核,一定要显示地告诉生产工厂。下面给出一种实现方案。enum CTYPE...
2018-08-09 01:27:39 77
原创 error:crosses initialization of
Switch语句中引起的错误。原因是变量的作用域会作用于所有case只需要将引起错误的代码,用大括号包起来就可以了。
2018-08-06 16:40:06 723
原创 用sublime搭建一个微型C++/C编译器
Sublime64位下载地址https://download.csdn.net/download/u013288800/10584010该版本是免安装中文版。下载MinGW,官网下载即可。安装标记的那个g++编译库。右键—>Mark for Installation 然后左上角Installation—>Apply Changes—>Apply 配置...
2018-08-05 02:06:14 603
原创 Qt :线程(续)
有关线程,可以做的是:在QThread子类添加信号。这是绝对安全的,并且也是正确的(前面我们已经详细介绍过,发送者的线程依附性没有关系)不应该做的是:调用moveToThread(this)函数指定连接类型:这通常意味着你正在做错误的事情,比如将QThread控制接口与业务逻辑混杂在了一起(而这应该放在该线程的一个独立对象中)在QThread子类添加槽函数:这意味着它们将在错误...
2018-08-03 23:23:36 302
原创 Qt :线程
在多核时代,随着 CPU 主频的提升,受制于发热量的限制,CPU 散热问题已经进入瓶颈,另辟蹊径地提高程序运行效率就是使用线程,充分利用多核的优势。Qt 中所有界面都是在 UI 线程中(也被称为主线程,就是执行了QApplication::exec()的线程),在这个线程中执行耗时的操作(比如那个循环),就会阻塞 UI 线程,从而让界面停止响应。///!!! Qt5class Work...
2018-08-03 13:03:40 295
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人