自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 C\C++_指针_智能指针模板类

模板种类智能指针模板类支持情况使用场景auto_ptrC++98提供的,C++11已摒弃,但如果编译器不支持其它两种C++11提供的,则只能使用auto_ptrunique_ptrC++11提供 (如果编译器没提供,可使用Boost库的scoped_ptr)不需要多个指向同一对象的指针shared_ptrC++11 提供(如果编译器没提供,可使用Boost库的shared_ptr)多个指针指向同一个对象,支持复制和赋值操作注意:需要包含头文件<m

2022-02-03 16:17:32 1323

原创 C\C++_类型转换运算符

类型转换运算符类型转换运算符作用语法dynamic_cast在类层次结构中进行向上转换dynamic_cast(expression)const_cast有时需要这样一个值,它在大多数时候是常量,有时又想要修改,这时可以将这个值声音为const,在需要修改的时候使用const_castconst_cast(expression)static_cast当type_name可被隐式转换为expression所属的类型或expression可被隐式转换为type_na

2022-01-30 17:17:54 597

原创 C\C++_继承_动态内存分配

一、概况关于基类使用动态内存分配,并重新定义赋值和赋值构造函数,对于派生类的影响,可以分为两种情况:1、派生类不使用new;2、派生类使用new二、派生类不使用newclass baseDMA{private: char* label; int rating;public: baseDMA(const char * l = "null", int r = 0); baseDMA(const baseDMA & rs); //< 复制构造函数 virtual ~baseDM

2022-01-09 19:03:41 685

原创 C\C++_继承_继承权限

一、继承权限的规则继承权限类型规则备注公有继承私有继承二、继承权限的用途继承权限类型作用备注公有继承私有继承私有继承可以使用has-a关系,但同时也会引发很多问题,而且较为抽象不易理解,通常应使用包含来建立has-a关系;如果新类需要访问原有类的保护成员,或需要重新定义虚函数,则应使用私有继承参考书籍:c++ primer plus(第六版)——14.2.2 使用包含还是私有继承...

2022-01-09 15:26:23 725

原创 C\C++_关键字_const

1.const在类成员函数右侧该函数不会修改被隐式的访问的对象#include <iostream>using namespace std;class Person{public: void Show() const //< const成员函数,不会修改被隐式的访问的对象的数据 { //m_a = 10; //< 错误,无法被修改 cout << m_a << endl; }private: int m_a;};in

2021-12-25 21:07:34 862

原创 C\C++_模板_函数模板

使用方式一般将模板放在头文件中,并在需要使用模板的文件中包含头文件编译器匹配规则如果有多个原型,则编译器在选择原型时的优先级如下:非模板函数 > 具体化模板函数 > 常规模板函数举例说明题目:只希望交换两个Job结构中salary的数据,不希望交换name的数据struct Job{ char name[40]; double salary;}//! 常规模板template <typename T>void Swap(T &j1, T

2021-12-25 17:47:16 421

原创 C\C++_运算符_重载运算符

重载运算符的限制参考书籍:C++ Primer Plus(第6版)——11.2.2 重载限制

2021-12-17 22:52:13 1336

原创 C\C++_类型_枚举体

代码#include <iostream>using namespace std;//! C++11 作用域内枚举体的一些特性//! 1.C++11新版枚举体,增加关键字class,可以避免small,big相同的符号冲突enum class eggs{ small, big };enum class he{ small, big };//! 2.可以指定枚举体底层类型,底层类型为short//enum class : short Workday{ Monday, Tuesd

2021-12-16 23:55:35 436

原创 C\C++_常量_作用域为整个类中的常量

代码#include <iostream>using namespace std;//! 作用域为类的常量,总共有两种方式class CPerson{private: //! 方式一:用这种方式声明枚举体并不会创建类数据成员,所有对象并不包括枚举, //! EM_BUF_SIZE只是个符号,在作用域为整个类的代码中遇到它,编译器会用1024来替换它 enum{EM_BUF_SIZE = 1024}; //! 方式二:CST_BUF_SIZE与其它静态变量存储在一起

2021-12-16 23:14:11 319

原创 C\C++_引用_函数参数

函数参数#include <iostream>using namespace std;//! 左值概念:左值参数是可被引用的数据对象,例如,变量、数组元素、结构成员、引用和接触引用的指针//! 非左值概念:包括字面常量(用引号括起的字符串除外,它们由其地址表示)和包含多项的表达式//! 当函数形参为非const引用时,接受引用参数的参数的意图是修改作为参数传递进来的变量,如果创建临时变量,//! 则会阻止这种意图的实现,故C++编译器禁止创建临时变量void Swap(int

2021-10-31 16:55:38 281

原创 Qt_特殊类型_变体类型QVariant

void Test03(){//QString str = “1 2”;//CheckData(str,QMetaType::Int);QString str1 = "23.03";CheckData(str1,QMetaType::Float);}//! 3. QVariant的拓展使用,先判断类型,然后再处理对应额数据bool CheckData(QVariant var, const int targetTypeId){if (var.isNull()){return fal

2021-10-16 17:44:00 806

原创 C\C++_库_静态库的封装和使用

环境介绍vs2010静态库创建生成静态库一、新建工程先新建工程选择Win32 Console ApplicationApplication type——Static libraryAdditional options——Empty project, 去除Precompiled header的勾选项二、 编译生成静态库使用静态库一、新建工程二、配置工程属性三、引用头文件...

2021-09-26 22:22:10 659

原创 原理介绍_Json_基础知识介绍

JSON(JavaScrip Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的 js 规范) 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。关于上面的描述可以精简为一句话:Json 是一种数据格式,和语言无关,在什么语言中都可以使用 Json。基于这种通用的数据格式,一般处理两方面的任务:组织

2021-09-21 17:50:24 193

原创 C\C++_字符编码

场景描述cin,cout(一)char ch;cin >> ch;现象定义char ch,从键盘输入字符cin>>ch, 这里假设是’M’(对应的ASCII码值是77),通过查看内存可以看到ch变量中的值是77原因这是因为cin和cout做了转换工作,它们的行为都是由变量类型引导的,假如77存储在int变量中,则cout显示77(也就是说,cout显示两个字符7),这里char类型的时候,cin将键盘输入的’M’转换为77,输出时,cout将值77转换为所显示的字符’M

2021-09-21 17:17:45 147

原创 C\C++_变量_静态存储的变量

静态存储的变量说明:静态存储是在程序整个运行时间都存在的变量类型作用域范围生命周期静态局部变量函数内有效程序运行期间静态外部变量本文件内有效程序运行期间非静态的外部变量其它文件可引用程序运行期间...

2021-09-21 17:15:36 280

原创 C\C++_运算符_赋值运算符

/***********************拷贝构造函数**************************/#include <iostream>class Person{public: Person& operator=(const Person &per) { if (this == &per) //< 如果自己赋值给自己,就直接返回 { return *this; } this->m_nAge = per.m_

2021-09-21 17:14:54 194

原创 Debug_crash

报错描述HEAP CORRUPTION DETECTED: after Normal block(#137) at 0x01324AC0CRT detected that the application worte to memory after end of heap buffer.报错原因new出来的堆空间大小,小于写入的大小,在delete[] 的时候,导致崩溃报错示例int main(){ char *pszStr = new char[4]; //< 申请4个字节

2021-09-04 16:32:46 91

原创 C\C++_构造函数和析构函数

系统提供构造函数规则系统默认会提供默认无参构造函数、拷贝构造(浅拷贝)和析构函数如果用户定义拷贝构造函数,c++不会再提供任何默认构造函数如果用户定义了普通有参构造函数(非拷贝),C++不在提供默认无参构造,但是会提供默认拷贝构造(浅拷贝)拷贝构造函数深拷贝和浅拷贝如果类成员变量中存在指向堆空间的数据,那浅拷贝会导致重复释放内存的异常(解决上述问题就需要深拷贝)...

2021-09-01 20:15:38 608

原创 C\C++_指针_类成员函数指针(待修改)

非静态成员函数指针1. 语法类成员函数指针的定义定义方式具体定义直接定义返回值类型(类名::*函数指针名字)(形参…)typedef改名字定义typedef 返回值类型(类名::*函数指针类型)(形参…)2. 使用class A{public: void CallbackFunc(int a) { qDebug() << "in A class"; }};void Test01(){ //! 方式一:直接定义函数指针类型(非

2021-08-27 13:55:42 72

原创 Qt_环境搭建_qt编译mysql驱动和使用

环境背景win10 64位系统qt开发工具: qt-windows-opensource-5.1.1-msvc2010_opengl-x86-offline.exeqt插件: qt-vs-addin-1.2.3-opensource.exevs开发工具: VS2010UltimTrial.isovs补丁包: cn_visual_studio_2010_sp1_x86_x64_dvd_651704.iso数据库: mysql-5.5.21-win32.msi...

2021-08-20 21:49:13 881

原创 Computer_win10_error reading from file

Problem: “Error reading from the “xx.msi” file. Verify that the file exists and you have access to it”.I’ve had two programs that would not install on my laptop with Windows 7, and gave the indicated error. I could not resolve the error by running “As Adm

2021-08-19 12:26:09 352

原创 Computer_word_排版

项目编号列表缩进标题缩进方式1标题缩进方式2

2021-08-18 23:02:01 72

原创 Computer_Win10_找回自带的图片查看器

找回自带的图片查看器安装好win10后,发现打开图片的默认程序是win10自带的画图工具,非常不方便,并且右键选择打开方式里边也找不到默认的“照片查看器”,非常不方便。恢复方法新建一个TXT文本文档,把以下代码复制粘贴到其中:Windows Registry Editor Version 5.00; Change Extension's File Type [HKEY_CURRENT_USER\Software\Classes\.jpg] @="PhotoViewer.FileAssoc.Ti

2021-08-16 19:51:59 412

原创 Debug_ThrdTools_Debugview

How to use DebugViewUsing DebugView, you can check the debug output.Get DebugViewDownload DebugView from the Microsoft website.DebugView - Windows SysinternalsYou may also download Sysinternals Suite from the download page.Here, you can also download

2021-07-15 22:53:13 97

原创 Qt_UI_vs建工程双击ui文件没有弹出设计界面

环境 【Visual Studio】: 镜像包:VS2010UltimTrial.iso service pack补丁:cn_visual_studio_2010_sp1_x86_x64_dvd_651704.iso 【Qt5.1.1】: qt-windows-opensource-5.1.1-msvc2010_opengl-x86-offline.exe 插件:qt-vs-addin-1.2.3-opensource.exe问题

2021-06-17 15:22:49 654

原创 Qt_绘图框架_QGraphicsview实现缩放移动图片

功能说明LoadImage按钮加载图片按住ctrl + 鼠标滚轮 实现以鼠标为中心点的位置缩放按下DefaultSize按钮,恢复原始位置实现原理说明MyGraphicsView继承QGraphicsView,重写视口的鼠标滚轮事件,从而实现视口的缩放需要设下如下两个视口大小转换以鼠标中心点为锚点setTransformationAnchor(QGraphicsView::AnchorUnderMouse);setResizeAnchor(QGraphicsView::AnchorU

2021-05-24 15:21:39 5697 4

原创 Word文档_排版

排版中文字体用微软雅黑,英文用Arial;字号分级,主标一级,副标二级,正文三级,建议不要分太多级,字号大小别差太多;行距调为固定值18磅;不要用斜体,也别乱加下划线删除线这些,不到万不得已不要去加粗,即使要用也要控制数量,我知道你们很想去强调,但强调太多就失去意义了;字体颜色,别用红色,如果没有好的配色方案,就用黑色跟灰色的组合吧,标题黑,正文灰(RGB 128 128 128),你会有收获的;有编号的时候不要手打,用word的编号功能来弄,顺便选个好看点的图标;一整块内容写完后,可以敲一

2021-05-24 14:02:17 150

原创 linux_安装_SecureCRT下载安装登陆ubuntu配色和文件传输

环境背景主机操作系统:Windows 7 Enterprise, 64-bit 6.1.7601, Service Pack 1虚拟机版本:VMware Workstation 14 pro 14.0.0 build-6661328虚拟机下的ubuntu:16.04下载和安装SecureCRTSecureCRT下载和安装(过程非常详细,值得查看)SecureCRT破解1.替换dll将这个keygen.exe放到secureCRT安装目录下,并将SCP.dll替换到secureCRT安装目录下

2021-05-24 13:57:18 1273

原创 C\C++_格式化_可变参va_list

va_list变量介绍使用前需引用头文件<stdarg.h>va_list 类型本质是typedef char * va_listva_list类型声明一个变量(char * ),假设这里声明va_list pArgs,该字符指针变量将依次指向后续待传入的各参数(无名参数…)宏va_start将pArgs初始化为指向第一个无名参数(无名参数…),在使用pArgs之前,必须用该宏调用一次。函数参数表中至少包括一个有名参数 (const char *pszFormat,…)每次调用va

2021-05-24 11:35:08 846

原创 Linux_安装_VM虚拟机ubuntu硬盘容量扩展

环境主机操作系统:Windows 7 Enterprise, 64-bit 6.1.7601, Service Pack 1虚拟机版本:VMware Workstation 14 pro 14.0.0 build-6661328虚拟机下的ubuntu:16.04扩容步骤1. 虚拟机关机状态下,点击编辑设置2. 找到硬盘,点击扩展3. 修改磁盘大小,这里50G扩展到100G扩展中虚拟机提示扩展完成4. 开机进入系统,安装gparted分区管理工具,终端中运行命令运行该命令:su

2021-05-20 19:21:41 260

原创 Debug_crash_QT下产生dump文件

环境背景Qt5.9.9版本编译器msvc2013注意事项1.头文件包含顺序头文件包含,一定要把Windows.h放在DbgHelp.h的前面,如果该顺序反了会报各种错误,原因不清楚。#include <Windows.h>#include <DbgHelp.h>2.IDE版本因为我的开发工具是QT: qt-opensource-windows-x86-5.9.9.exe;VS: Microsoft Visual Studio Professional 2

2021-05-20 17:30:02 203

原创 Debug_crash_Windbg调试

4 流程崩溃问题对于程序运行异常的情况,如崩溃,可分为事后调试和运行时附加调试。事后调试一般有dump文件生成。若崩溃可复现,可以通过附加到正在运行的程序进行调试。代理进程名为VmModuleProxy.exe,一般使用windbg进行崩溃问题定位。很多情况下都是流程运行导致代理进程崩溃,dump文件存在: VM安装目录\ Applications\log\ModuleProxy目录下。下面主要介绍怎样使用windbg,定位基本的代理进程崩溃问题。这里所述的崩溃问题定位方式不仅仅适用于VmModule

2021-05-19 17:04:48 603

原创 Linux_安装_安装VMware Tools

Vmware Tools的作用1.用户可以从物理主机直接往虚拟机里面拖文件;2.鼠标进入虚拟机后可以直接出来,不安装的话要按CTRL+ALT才可以释放鼠标;3.另外会自动安装声卡驱动等等;4.Ubuntu 窗口可以自适应电脑全屏,步骤如下:4.1:查看——全屏安装步骤先切换到root权限: sudo su ;输入密码登陆然后执行下面步骤:第一行命令: sudo apt-get upgrade第二行命令: sudo apt-get install open-vm-tools-desktop

2021-05-19 15:49:19 97

原创 C\C++_指针_函数指针

函数指针的定义方式1. 定义函数类型,通过类型来定义指针//函数名MyFunc其实就是函数的入口地址int MyFunc(int a, char b){ printf("%c是char,%d是int类型\n", b, a);}int main(void){ typedef int(FUNC_TYPE)(int, char); //定义函数类型 FUNC_TYPE *pFunc = MyFunc; //函数指针指向函数入口地址 pFunc(1, 'a'); //函数指针调用函数(

2021-05-14 14:05:42 75

原创 C\C++_指针_指针数组

说明只要是连续的内存空间,都能使用下标的方式访问内存。一级指针(char*ch1): a. ch1[1],ch1[2]就是取一级指针所指向的值; b. (ch1+1),(ch1+2)..就是移动一级指针所指向的位置;二级指针(char **ch):二维数组类型的二级指针(指针数组)非二维数组类型的二级指针(非指针数组)...

2021-05-14 11:57:53 285

原创 C\C++_指针_数组指针

数组指针#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//********************【数组指针】:它是指针,指向数组的指针**********************************。//数组的类型由元素类型和数组大小共同决定:int array[5] 的类型为 int[5];C语言可通过typedef定义一个数组类型:void _cdecl Test0

2021-05-14 10:58:13 66

原创 C\C++_关键字_typedef使用场景

重命名结构体名称typedef struct Person{ char name[20]; int age;}MyPerson;重命名指针typedef char * PCHAR;void Test01(){ char *p1, *p2; cout << typeid(p1).name() << endl; cout << typeid(p2).name() << endl; PCHAR p3, p4; cout <&

2021-05-14 10:41:49 338 1

原创 Qt_常用控件_Table Widget

Qt_常用控件_tablewidget

2021-05-05 16:22:35 18065 4

空空如也

空空如也

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

TA关注的人

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