
C++
文章平均质量分 82
w_x_myself
内心强大,敢于拼搏的人
展开
-
设计模式之状态模式(State)
1、定义在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。2、介绍优点: 1、封装了转换规则。 2、枚举可能的状态,在枚举状态之前需要确定状态种类。 3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要...原创 2018-09-03 18:29:39 · 270 阅读 · 0 评论 -
文件处理
1、C++文件处理1.1、文件删除DeleteFile(文件路径)1.2、读取文件1、windows下读取ini配置文件int a = GetPrivateProfileInt("Params","XLimit",165000,strPath);//获取整型数据//com为数组类型,参数1:表示字段名字,参数2:表示变量名,参数3:表示默认值GetPrivateProf...原创 2018-12-08 09:36:45 · 198 阅读 · 0 评论 -
多线程的创建
1、在Windows上创建线程通过窗口句柄创建线程:参数说明: 参数1: lpThreadAttributes 表示线程内核对象的安全属性,一般传入NULL表示使用默认设置。 :参数 2:dwStackSize 表示线程栈空间大小。传入0表示使用默认大小(1MB)。 :参数3: lpStartAddress 表示新线程所执行的线程函数地址,多个线程可以使用同一个函...原创 2018-10-11 16:32:32 · 161 阅读 · 0 评论 -
QT中常用类
目录1、TableWidget类1.1、均分各列1.2、整行选中:1.3、删除选中的整行1.4、删除表格旁边的行号1.5、 行、列操作1.6、设置编辑属性1.8.修改某行数据触发信号与槽函数1.9获取当前最大行数2、对话框类2.1、建立标准输入对话框:2.2、消息提示框2.3、打开文件对话框及QProcess类的运用3、radiobu...原创 2018-08-08 21:23:11 · 3746 阅读 · 1 评论 -
char*、string、CString的应用及相互转换
目录1、char*1.1、简介1.1、常用函数1.1.1、初始化方法1.1.2、获取字符(从键盘或者从文件中)1.1.3、输出1.1.4、字符串长度1.1.5、字符串追加1.1.6、字符串比较1.1.7、字符串拷贝1.1.8、格式化字符串1.1.9、sscanf格式化输出1.1.10、查找1.1.11、 分割字符串2、s...原创 2018-09-29 14:18:30 · 1038 阅读 · 0 评论 -
STL详解
目录1、STL简介2、常用容器2.1、string容器2.1.1、string容器基本概念2.1.2、string常用函数2.2、vector容器2.2.1、vector容器基本概念2.2.2、vector常用构造函数2.2.3、vector常用赋值函数2.2.4、vector大小操作2.2.5、vector存储操作2.2.6、vector插入与删除...原创 2018-10-18 16:45:42 · 439 阅读 · 0 评论 -
设计模式之访问者模式(visitor)
1、定义在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。2、介绍优点: 1、符合单一职责原则。 2、优秀的扩展性。 3、灵活性。缺点: 1、具体元素对访问者公布细节,...原创 2018-10-18 17:26:33 · 240 阅读 · 0 评论 -
C++网页请求、窗口截取、日志运用、系统时间、C++转BYTE
1、请求网页信息1.1、C++(MFC)Cstring Get_Http_Date(){ CWinApp app((LPCTSTR)"123"); app.InitApplication(); AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0); CString m_URL =...原创 2018-12-08 09:41:21 · 533 阅读 · 0 评论 -
C++执行ADB指令
1、运行环境VS2013+adb.exe程序,项目结构在github上ADB_CMD,网址为:https://github.com/w-x-me/Demon_Code2、源码#define _CRT_SECURE_NO_WARNINGS#include<iostream>#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS #inc...原创 2018-09-03 10:04:36 · 11443 阅读 · 0 评论 -
设计模式之责任链模式(Chain of Responsibility)
1、定义顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。2、介绍优点: 1、降低耦合度。它将...原创 2018-09-04 10:26:13 · 165 阅读 · 0 评论 -
设计模式之观察者模式(Observer)
1、定义当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。2、介绍优点: 1、观察者和被观察者是抽象耦合的。 2、建立一套触发机制。缺点: 1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。 2、如果在观察者和观察目标之间有循环依赖...原创 2018-08-29 14:08:46 · 148 阅读 · 0 评论 -
设计模式之策略模式(Strategy)
1、定义在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。2、介绍优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类会增...原创 2018-08-27 11:47:51 · 153 阅读 · 0 评论 -
设计模式之代理模式(Proxy)
1、定义在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。2、介绍优点: 1、职责清晰。 2、高扩展性。 3、智能化。缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有...原创 2018-08-27 15:15:30 · 250 阅读 · 0 评论 -
设计模式之单例模式(Singleton)
1、定义单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。2、介绍优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁...原创 2018-08-27 16:10:12 · 194 阅读 · 0 评论 -
设计模式之多例模式(Multition)
1、定义和单例基本一样,是有个数限制的单例。如果对于产生的实例个数没有限制,那就不是多例了,和普通的类没有区别。2、源码具体思路:运用static关键词,设置静态变量和静态容器,限制类创建的个数。2.1、头文件Emperor.h#pragma once#include <iostream>#include <vector>using name...原创 2018-08-27 16:59:27 · 529 阅读 · 0 评论 -
设计模式之工厂方法模式(Factory Pattern)
1、定义工厂模式(Factory Pattern)是最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。2、介绍优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏...原创 2018-08-27 17:57:41 · 275 阅读 · 0 评论 -
设计模式之抽象工厂模式(AbstractFactory)
1、定义抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。2、介绍应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧...原创 2018-08-28 10:19:53 · 194 阅读 · 0 评论 -
设计模式之外观模式(Facade Pattern)
1、定义外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。2、介绍优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。缺点:不符合开闭原则,...原创 2018-08-28 12:00:42 · 195 阅读 · 0 评论 -
设计模式之适配器模式(Adapter Pattern)
1、定义适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。2、介绍优点: 1、可以让任何两个没...原创 2018-08-28 14:26:50 · 210 阅读 · 0 评论 -
设计模式之模板模式(Template Method)
1、定义在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。2、介绍优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。缺点:每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统...原创 2018-08-28 15:32:03 · 174 阅读 · 0 评论 -
设计模式之建造者模式(Builder Pattern)
1、定义建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。2、介绍优点: 1、建造者独立,易扩展。 2、便于控制细节风险。缺点: 1、产品必须有共同点,范围有限制。 2、如内部变化...原创 2018-08-28 17:04:08 · 369 阅读 · 0 评论 -
设计模式之桥接模式(Bridge)
1、定义桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。2、介绍优点: 1、抽象和实现的分离。 2、优秀的扩展能力。 3、实现细节对客户透明。缺点:桥接模式的...原创 2018-08-28 17:40:58 · 295 阅读 · 0 评论 -
C++动态库的制作和调用
1、dll的有点代码复用是提高软件开发效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架,ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点比较多,总结起来有4点。 暴露了源代码;多份拷贝,造成存储浪费; 容...原创 2018-08-31 20:15:30 · 23776 阅读 · 9 评论 -
设计模式之命令模式(Command)
1、定义命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。2、介绍优点: 1、降低了系统耦合度。 2、新的命令可以很容易添加到系统中去。缺点:使用命令模式可能会导致某些系统有过多的具体命令类。使用场景:认为是命令的地...原创 2018-08-29 09:10:48 · 608 阅读 · 0 评论 -
设计模式之装饰器模式(Decorator)
1、定义装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。2、介绍优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现...原创 2018-08-29 10:06:31 · 142 阅读 · 0 评论 -
设计模式之迭代器模式(Iterator Pattern)
1、定义用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。2、介绍优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的...原创 2018-08-29 10:54:01 · 203 阅读 · 0 评论 -
设计模式之组合模式(Composite)
1、定义组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。2、介绍优点: 1、高层模块调用简单。 2、节点自由增加。缺点:在使用组合模...原创 2018-08-29 11:21:26 · 264 阅读 · 0 评论