自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (4)
  • 收藏
  • 关注

原创 c++设计模式——装饰模式

#pragma onceclass MilkPowder{public: MilkPowder(); virtual ~MilkPowder(); virtual void SuppleEnergy();};#include "MilkPowder.h"#include <QDebug>MilkPowder::MilkPowder(){}Milk...

2020-03-19 21:55:55 175

原创 c++设计模式——观察者模式

#pragma onceclass IObserver{public: virtual ~IObserver() {} virtual void Update(float tmp, float humidity, float pressure) = 0;};#pragma once#include "IObserver.h"class Observer : pub...

2020-03-17 20:28:21 158

原创 c++设计模式——策略模式

#pragma once#include "FlyBehavior .h"class Duck{public: Duck(FlyBehavior* flybh); virtual ~Duck(); void Swim(); void PerformFly(); virtual void Display() = 0;private: FlyBehavior* m_Fl...

2020-03-15 19:27:44 170

原创 c++基础学习之——类

封装:实现的具体细节不对外暴露,仅向用户暴露接口。继承:保留基类的属性和行为。 改进基类的属性和行为。 添加新的属性和行为。多态:相同的行为方式可能导致不同的行为结果,即产生了多种形态行为。类的更深层理解:虚函数和虚表,有时间学习...

2020-03-11 21:32:00 145

原创 UML练习

类图的三个基本组件 类名 属性 方法类的几个主要关系 association 关联 directedAssociation 指向性关联 aggregation 聚合 composition 组成 generalizatio...

2020-03-08 17:24:07 707

原创 QT容器使用练习

#include "Export.h"#include "LoadCellSite.h"#include <QtWidgets/QApplication>#include <QDialog>#include <QVBoxLayout>#include <QGroupBox>#include <QRadioButton>#i...

2020-02-19 11:35:33 153

原创 QT事件、事件过滤、自定义事件练习

EventLabel.h#pragma once#include <QLabel>class EventLabel : public QLabel{public: EventLabel(); ~EventLabel();protected: void mouseMoveEvent(QMouseEvent *event); void mousePress...

2020-02-06 09:06:23 166

原创 通信知识

1、大小端大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。小端:相反。如:0x12 34 56 78 90 12 34 56 78 90UINT32  0x  12         34           56         78 地址    0x00000001  0x00000002  0x00000003

2018-02-03 12:37:27 184

原创 c++面试题

1、已知类String的原型为:classString{public:String(constchar*str=NULL);//普通构造函数String(constString&other);//拷贝构造函数~String(void);//析构函数String&operate=(constString&other);//赋值函

2017-11-13 18:31:41 562

原创 为什么使用多线程

1、耗时的操作使用线程,提高程序响应。2、并行操作使用线程,如:C/S架构的服务器端并发线程响应用户的请求。3、多CPU系统中,使用线程提高CPU利用率。4、改善程序结构。一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。操作系统给每个线程分配不同的CPU时间片,在某一个时刻,CPU只执行一个时间片内的线程,多个时间片中的相应线程在CPU内轮流执行,由

2017-11-10 19:50:25 820

原创 WinDbg学习

1、标准命令控制调试执行目标---- g t p观察修改寄存器--- r观察编辑搜索内存数据---d e s观察栈--- k2、元命令---点命令 .包括命令 .symopt  .restart   .load   .logfile   .dump3、扩展命令---以!开始

2017-11-09 23:16:44 261

原创 多线程

1、线程基本函数HANDLEWINAPICreateThread( LPSECURITY_ATTRIBUTESlpThreadAttributes, SIZE_TdwStackSize, LPTHREAD_START_ROUTINElpStartAddress, LPVOIDlpParameter, DWORDdwCreationFlags, LPDWORDlpThre

2017-11-02 14:55:54 210

原创 MFC ListBox使用

.hCCheckListBox m_lstAttr;      //属性匹配列表afx_msg LRESULT OnShapeTypeChanged(WPARAM wParam, LPARAM lParam);// 图元类型改变.cppOnShapeTypeChanged(0,0);DDX_Control(pDX, IDC_LIST1, m_lstAttr);ON_ME

2017-10-30 16:50:26 336

转载 通过WM_COPYDATA消息完成进程间通信

完成进程间通信最简单的方式就是发送WM_COPYDATA消息。(1)发送WM_COPYDATA消息SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&copyData);其中的copyData是要发送的数据,类型为COPYDATASTRUCT结构体:typedef struct tagC

2017-10-23 14:50:01 324

转载 C++ 构造函数后面的冒号的作用

其实冒号后的内容是初始化成员列表,一般有三种情况:    1、对含有对象成员的对象进行初始化,例如,    类line有两个私有对象成员startpoint、endpoint,line的构造函数写成:    line(int sx,int sy,int ex,int ey):startpoint(sx,sy),endpoint(ex,ey){……}    初始化时按照类定义中对象成

2017-10-17 15:42:56 713

原创 MFC消息处理机制

Windows消息处理机制Windows把来自硬件(键盘,鼠标)的消息和来自应用程序的消息放在Windows消息队列中。应用程序有自己的消息队列,即线程消息队列。Windows获取到消息放置在消息队列,然后发送给程序的线程消息队列,最后线程队列每次取出一条消息发送到指定窗口,不断取出消息(循环),直到结束。这个循环就是靠消息环(while(GetMessage()) Translate

2017-10-17 10:53:37 660

原创 判断点在多边形内

BOOL IsPtInPolygon(Point p,Point *c,int count){int i,j;  bool status = false;  for (i = 0, j = count-1; i   {    if ((((c[i].y      status = !status;  }  return status;}

2017-10-13 15:38:58 355

原创 编程书籍

《算法导论》Thomas H.Cormen、 Charles E.Leiserson《深入理解计算机系统》Randal E. Bryant《人月神话》Frederick P.Brooks《编程珠玑》Jon Bentley《高性能MySQL》施瓦茨 (Baron Schwartz)、 扎伊采夫 (Peter Zaitsev)《代码大全》Steve McConnell《程序员修炼之道:从小工到专家》亨

2017-10-12 11:37:02 183

转载 在VS中添加lib库的三种方法

注意:1、每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了2、无论是设置DLL目录,或者是Lib目录,亦或是头文件的目录,都有release版本和debug版本的区分,每种版

2017-10-11 23:51:19 296

转载 MFC复选框Checkbox

MFC中复选框checkbox控件,至少有三种方法对其进行操作,他们是利用Cbutton成员函数GetCheck和SetCheck,第二种是利用CWnd成员函数IsDlgButtonChecked,最后就是把checkbox复选框控件与BOOL型变量相关联。一、用CButton成员函数MFC中复选框CheckBox的基类是CButton。那么就可以用GetDlgItem来获取复选框的指

2017-10-11 00:06:43 702

原创 MFC函数汇总

1、GetDlgItem1).CWindow::GetDlgItemHWND GetDlgItem( intnID)const;说明——参数 nID:接收消息的控件的标识;返回值:标识所标记的控制窗口句柄;2).CWnd::GetDlgItemCWnd* GetDlgItem ( intnID) const;voi

2017-10-10 23:17:24 323

转载 C++ 什么是句柄?为什么会有句柄?HANDLE

出处:http://www.cppblog.com/mymsdn/archive/2009/02/19/handle-in-windows.html从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个"柄"。从一个小东西拎起一大堆东西,这难道不像是个"柄"吗?然后,指针其实也是一

2017-10-10 23:12:32 6700

原创 静态成员函数

1.静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用 类成员函数指针来储存。举例如下: class base{ static int func1(); int func2(); }; int (*pf1)()=&base::func1;//普通的函数指针 int (base::*pf2)()=&base::func2;//成员函数指针 2.静

2017-10-09 11:21:45 1652

原创 winform界面显示不全

1、将窗体的AutoScaleMode属性设置为None,尝试一下2、private void InitializeComponent() { //设定按字体来缩放控件 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

2017-09-30 17:01:04 11277

原创 map使用

map> strData; vector vStr; for(int j = 0; j < col; j++) { vStr.clear(); for(int i = 0; i < strVec.size(); i++) { if(i % col == j) { CSt

2017-09-29 10:29:12 247

原创 c#问题汇总

1、c#第一次好着,第二次尝试读取或写入受保护的内存。这通常指示其他内存已损坏。分析:如果第一次调用正常,第二次调用失败检查是不是open 之后没有close解决:打开之前,重新new

2017-09-20 09:27:00 565

原创 treeview控件

1、treeview点击节点事件NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)SelectedNode得到的节点值是是上一次选择的节点当前节点用e.Node

2017-09-12 11:51:14 307

原创 c#设计模式

1、单例模式    一个类只有一个实例;    提供一个全局访问点。 /// /// 单例模式的实现 /// public class Singleton { // 定义一个静态变量来保存类的实例 private static Singleton uniqueInstance; // 定义私有构造函

2017-09-11 16:17:45 218

转载 MFC消息机制

Windows程序和MFC程序是靠消息驱动的,他们对于消息的处理本质上是相同的。只是Windows程序对于消息处理的过程十分清晰明了,MFC程序则掩盖了消息处理的过程,以消息映射的方式呈现在开发者面前,使得开发消息的处理十分简单。用多了mfc就想对它的消息映射机制有一个本质的了解,下面将对消息映射做详细的分析。当然,在分析MFC消息映射之前首先对Windows程序的消息处理过程进行一个简单的描述。

2017-09-11 10:11:03 500

原创 模板template

模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 使用模板的目的就是能够让程序员编写与类型无关的代码。  模板是一种对类型进行参数化的工具;  通常有两种形式:函数模板和类模板;  函数模板针对仅参数类型不同的函数;  类模板针对仅数据成员和成员函数类型不同的类。1、函数模板template

2017-09-08 16:07:06 265

原创 c++设计

1、假设设计以下函数fn(参数随意){        A() //固定        C() //不定        B() //固定}要求在A与B不变的情况下可以任意改变C(),C()的函数形式不统一,且传入不同的C()时不用额外修改函数思路:参数不固定,那就给固定下来,参数和返回值使用结构体封装起来,用void*指针传入,然后用int型flag标识是哪个

2017-09-07 15:51:52 335

原创 c++xml文件

1、CXml * xml = new CXml();xml->Create(_T("Data"), _T("UTF-8"));CXmlNodePtr root = xml->GetRoot(); 根节点CXmlNodePtr nodeDatum = root->NewChild(_T("Vertex")); 创建节点nodeDatum->SetAttribu

2017-09-07 12:00:15 371

原创 c++文件处理

1、文件写入fwrite(const void*buffer,size_t size,size_t count,FILE*stream);FILE *file = fopen(filename,"w");const char * pStr = strA;fwrite(pStr,strA.GetLength(),1,file);fclose(file);

2017-09-07 11:47:29 296

转载 自绘控件(有疑问)

我们要改变一个编辑框的背景 我们响应WM_CTLCOLOR函数 进行OnCtlColor进行修改但是对与 Button控件就不行了 ..    这时候我们要进行自绘制    相关函数   virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );  要覆盖掉这个虚函数  并且类型要设置为 BS_OWNERDRAW 这时候

2017-09-06 15:28:12 243

原创 读取xml文件

1、根据路径查询结点SelectSingleNode(const CString& path){ CXmlNodePtr nodePtr; if(NULL == m_pXmlDataSouce) return nodePtr; CXmlNode root = m_pXmlDataSouce->GetRoot(); if(root.IsNull()) return node

2017-09-06 11:15:01 227

转载 三千大数阶乘

#include      #include      #define   STRMAX   2000   #define   P   100000   #define   N   3000    int   main()    {    long   t[STRMAX]={0},a,b,c,g=0,x,e,p=P;    t[STR

2017-09-05 16:40:18 705

转载 c++内存管理

[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权

2017-09-05 16:12:32 800

原创 指针

常规用法: char *p; p = new char[n]; delete []p;理解:int *ptr; 指针所指向的类型s是intchar *ptr; 指针所指向的类型是charint **ptr; 指针所指向的类型是int*int(*ptr)[3]; 指针所指向的数据类型是 int ()[3],ptr为指向含3个元素的一维整形数据的指针变量指

2017-09-05 15:42:33 296

原创 MFC控件

1、列表框常用方法:AddString 在列表框最后添加列表项InsertString在列表框中指定位置添加列表项DeleteString删除一列表项ResetContent清空列表项FindString 查找列表项GetCurSel 返回当前选择项的索引SetCurSel 选择某个列表项SetItemData 为列表项关联一个32位

2017-09-03 17:47:20 316

原创 dataTable处理

两个dt合并//拷贝DataTable1的结构和数据 DataTable newDataTable = DataTable1.Copy(); //添加DataTable2的数据 foreach (DataRow dr in DataTable2.Rows) { newDa

2017-08-25 15:14:53 273

UML练习设计——Test.uml

和本文章配套的UML练习设计——https://blog.csdn.net/oPuXin/article/details/104736365

2020-03-08

电路基础pptpdf双教程

电路基础pptpdf双教程.zip

2016-03-23

数据结构 C++ 语言描述

数据结构 C++语言描述

2016-03-23

空空如也

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

TA关注的人

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