自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 6、设计模式

在软件开发中常常有一个请求会被多个对象中的一个(或多个)处理,但是每个请求在运行时只能有一个接收者,如果显示的执行将会使请求者和接受者产生紧耦合。为了避免产生紧耦合,将这些处理对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用,这个时候将组件封装在类的内部并对外提供统一的接口是一种行之有效的解决方案。组件模式采用树形结构来实现普遍存在的对象容器,从而将一度多的关系转化为一对一的关系。

2024-01-21 21:28:43 324

原创 5、设计模式——接口隔离模式

在组件构建过程中,接口之间的直接依赖会带来很多问题,采用添加一层间接(稳定)接口,来隔离本来相互紧密关联的接口。典型模式。

2024-01-18 23:17:35 345

原创 4、设计模式——对象创建模式

家族工厂模式,当面临一系列相互依赖的对象创建工作时可以使用抽象(家族)工厂模式,它其实算是简单工厂的一个特例。

2024-01-17 23:30:58 305

原创 3、设计模式——装饰模式

在软件的组件设计中,如果责任划分不清晰,使得继承得到的结果往往时是随着需求的变化,子类急剧膨胀,同时充斥着重复代码。下面是这种情况比较典型的两种模式。

2024-01-15 22:44:55 322

原创 2、设计模式——组件协作

定义:定义一个操作的骨架,而将一些步骤延迟(就是指的晚绑定,一般用虚函数来实现)到子类中,使得子类可以不改变(重用)一个算法的结构即可重新定义一些步骤。在软件构建的过程中,某些对象使用的算法可能多种多样,如果将这些算法都编码到对象中,将会使对象变的异常复杂。而且不使用的算法也可能会变为一个性能负担。在软件构建过程中,我们需要为某些对象建立一种通知依赖关系,就是目标对象状态发生改变时所依赖的对象(观察者)需要得到通知。定义:定义对象间一对多的一种依赖关系,以便一个对象发生改变时所依赖的对象都会得到通知。

2024-01-14 23:39:03 385

原创 1.设计模式-综述

设计模式是将代码进行一个抽象,对问题进行一种归纳统一处理,抽象后会增加代码的复用性(二进制层面),抽象后并不会消灭变化,而是隔离变化,降低变化对原有代码框架的影响。从一个更高的层面去讲,人们处理复杂性的问题时用一个更加通用的技术,由于不能全部掌握复杂的对象,我们选择忽略一些非本质的细节,去处理泛化和理想化后的模型。面向对象的构建方式更能适应软件的变化,能将变化带来的影响减到最小。从概念上讲对象就是拥有某种“责任”的抽象。即分而治之,将大问题分解为多个小问题,将复杂的问题分解为多个简单的问题。

2024-01-11 23:13:59 361

原创 Inventor 二开环境配置

Autodesk.GDC_Inventor.Inventor.addin(.addin 插件说明文件一个)inventor安装的时候,会自动在GAC中添加Inventor interop library,其中Samples包含了一些插件的源码对开发指导有很大的作用。目前Inventor开发支持C++、C#、VB。Library路径:C:\Windows\。xxxaddin.dll (一个或多个)inventor版本:2020。开发环境:VS2015。

2024-01-07 14:44:45 833

原创 c++ 笔记(3) 增强枚举类

在标准C++中,枚举类型不是类型安全的。枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较。此外,枚举所使用整数类型及其大小都由实现方法定义,皆无法明确指定。枚举的名称全数暴露于一般范围中,C++03两个不同的枚举,不可以有相同的枚举名。如:enum Side{ Right, Left }; 和 enum Thing{ Wrong, Right }; 不能一起使用。enum class此种枚举为类型安全的。枚举类型不能隐式地转换为整数;也无法与整数数值做比较。还可以指定类.

2021-04-25 20:57:01 144

原创 c++笔记(2)类型别名 typedef 和 using

当程序开发中遇到类型比较复杂很难拼写时,我们可以为这种类型定义一个别名,方便书写和开发目前c++ 提供两种可以定义别名的关键字 typedef 和 using(c11)typedeftypedef double dnum; // 定义dnum的类型为doubletype char *cstr; //定义cstr的类型为char*dnum d = 100.0;//d的类型为doublecstr name = "xiaoming"; // name的类型为char*;using.

2021-04-24 23:50:08 112

原创 c++ 笔记(1)初始化列表和默认初始化

首先声明一点:变量的初始化不是赋值,初始化的含义是创建变量时,给变量一个初始值;赋值的含义时将原来的值擦除,而后用一个新值替代。一、基本类型的初始化列表比如初始化一个int型变量int num = 10;int num(10);int num {10};int num ={10};以上四种方式都是可以对num进行初始化,后两种方式为列表初始化,c11引进。对于内置类型的变量进行列表初始化如果初始值存在丢失信息的风险,则编译器拒绝初始化;如:double dnum

2021-04-21 22:57:41 309

原创 linux 编写C++ 基本指令

头文件 使用编译选项-I参数来指定头文件路径g++ -c -I/home/path main.cpp -o main.o-I/home/path 指定头文件路径(当头文件和cpp文件不在一个目录时)库文件g++ main.o -o exeProgram -L/home/path -lexample-L/home/path -lexample 指定库文件的路径在makefile文件中可以定义一个变量名来代替上面的路径CXXFLAGS += -I/home/path...

2021-04-19 23:12:43 458

原创 linux 生成动态库和静态库

库分为两种:共享库 : shared library,,命名规则一般为libxxx.so静态库:static library,,命名规则一般为libxxx.anm命令 可以查看库中的符号:nm libxxx.so生成动态库命令:生成.o文件(-fPIC)-fPIC则表明使用地址无关代码。PIC:Position Independent Code. Linux下编译共享库时,必须加上-fPIC参数,否则在链接时会有错误提示g++ -C -fPIC example.c...

2021-04-11 22:59:28 127

原创 linux makefile文件的使用

基本规则:target:prerequisites1 prerequisites2。。。commandtarget— 目标文件, 可以是Object File 也可以是可执行文件,还可也是标签Labelprerequisites—生成target所需的文件或目标;command—make需要执行的命令,可以是任何shell命令。make所看到的第一项规则会被当做默认规则使用。注意:命令前必须使用有一个制表符(<TAB>)。一、先贴出一个基...

2021-04-11 17:25:22 162

原创 c++ 对文件的读写

下面直接贴出两个类,一个为写文件,一个为读文件。// Generates a temporary file name. bool GenerateNewFile(std::wstring& filepath){ UINT uRetVal = 0; std::wstring tempPath = getTempPath();//可改为windowsApi 同名函数 TCHAR szTempFileName[MAX_PATH]; if (!tempPath.em

2021-04-11 16:56:40 200

原创 WindowsApi使用(3)——检测电脑是否连接网络

用来检测本地电脑是否网络是否正常连接#include <Netlistmgr.h>bool CheckIsNetworkWorking(){ CoInitialize(NULL); IUnknown *pUnknown = NULL; BOOL bOnline = TRUE; HRESULT Result = CoCreateInstance(CLSID_NetworkListManager, NULL, CLSCTX_ALL, IID_IUnkn

2021-04-11 16:25:49 710

原创 windows api 封装的定时器

#pragma once#ifdef _WINDOWS#include <Windows.h>#else//请添加相应系统版本实现#endifnamespace gdc{ typedef void(*TimerCallback)(void *userData, unsigned long elapsed); /*! * @brief 定时器类 */ class GDCTimer { public: GD.

2021-03-24 23:21:18 512

原创 Windows API 使用(2)——加载动态库

bool gdc::utils::createDirectory(const std::wstring& dirPath){#ifdef _WINDOWS int res = _wmkdir(dirPath.c_str()); return (res == 0 || res == 17);#else std::string sPath = UnicodeToUtf8(dirPath); return (mkdir(sPath.c_str(), 0777) == ...

2021-03-09 23:02:38 208

原创 Windows API使用(1)——对文件的操作(获取名字或路径)

对文件的操作// struct tempfileInfo// {// long long accesstime;// std::string fileName;// };// std::wstring localPath = FileSystem::GetLocalAppDataDirPath(L"Glodon");// std::wstring localLogFolderPath = localPath + L"G

2021-03-08 16:15:08 1156

原创 如何编写cmke文件

最简单的cmake文件# CMakeLists.txt# CMake最低版本要求cmake_minimum_required(VERSION 3.5)# 项目名称project(test_1)# 生成可执行文件,test_1是可执行文件的名字,hello.c是源文件名称,如有其他源文件,可在后面添加add_executable(test_1 hello.cpp) ...

2021-03-07 23:17:59 584

原创 脚本文件BAT入门(1)

一、常用的命令

2021-03-06 23:08:51 441

原创 脚本文件BAT入门(2)

一、管理员运行脚本::在你的脚本前加上以下两句命令%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exitcd /d "%~dp0"::下面是你的程序tscancode.exe --enable=warning E:\Gbmp\gdc-sdk\src\Common 2>tscancode

2021-03-06 16:56:27 2258

转载 Visual Studio 2015中使用Git

(转载)在Visual Studio 2015中使用Git 原文:http://blog.csdn.net/damon316/article/details/518858021.VS2015在对Git的支持VS2015是微软IDE集成开发环境的重量级升级,微软除了将触角延伸至iOS和Android平台以及Unity,Unreal和Cocos等游戏开发领域中。而且在进一步集成Git。可以说在不...

2019-04-16 18:43:24 754

转载 VS生成的文件说明

VS生成文件说明vs工程中,往往包含:.sln 、.db 、.opendb 文件sln文件 为工程属性文件,是我们必须添加到版本控制中的,db文件,是项目编译时生成的数据库文件,非常的大,占用空间,不需要添加到版本控制中。opendb文件也是编译生成的文件, 不需要添加到版本控制中。在项目文件中,还包含了.vcxproj 、vcxproj.filters 、vcxproj.user ...

2019-04-13 16:20:39 2373

MD5算法的实现 C++版本

MD5算法的实现 C++版本

2021-03-26

空空如也

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

TA关注的人

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