自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

父进程的博客

站在巨人的肩膀上共同学习

  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 后台开发工程师技术能力体系之编程语言8——拷贝控制

拷贝控制  一个类通过定义五种特殊的成员函数来控制对象拷贝、移动、赋值和销毁等操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符和析构函数。如果一个类没有定义所有这些拷贝控制成员,编译器会自动为它定义缺失的操作。因此很多类会忽略这些拷贝控制操作,但是对于一些类来说,依赖这些操作的默认定义会导致灾难。1.拷贝构造函数  如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参...

2020-04-22 11:11:05 197

原创 后台开发工程师技术能力体系之编程语言7——动态内存

动态内存  全局对象在程序启动时分配,在程序结束时销毁;对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁;局部staitc对象在第一次使用前分配,在程序结束时销毁。除了自动和static对象外,C++还支持动态分配对象。动态分配的对象的生存期与它们在哪里创建时无关的,只有当显式被释放时,这些对象才会销毁。  动态对象的正确释放是编程中极易容易出错的地方,为了更安全地使用动...

2020-04-21 08:30:28 258

原创 后台开发工程师技术能力体系之编程语言6——泛型算法

泛型算法1.概述  标准库并未给每个容器添加大量功能,而是提供了一组算法,这些算法中的大多数都独立于任何特定的容器,这些算法是通用的(或泛型的),它们可用于不同类型的容器和不同类型的元素。大多数算法都定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法。一般情况下,这些算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。通常情况下,算法遍...

2020-04-21 08:29:21 193

原创 后台开发工程师技术能力体系之编程语言5——关联容器

关联容器1.基本概念  关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。  关联容器支持高效的关键字查找和访问,两个主要的关联容器类型是map和set。map中的元素是一些键-值(key-value)对:关键字起到索引的作用,值则表示与索引相关联的数据。set中每个元素值只包含一个关键字:set支持高效的...

2020-04-21 08:28:33 147

原创 后台开发工程师技术能力体系之编程语言4——顺序容器

顺序容器1.标准库类型string  标准库类型string表示可变长的字符序列,使用string类型必须首先包括string头文件,作为标准库的一部分,string定义在命名空间std中。  初始化string对象有多种方式,如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去;如果不使用等号,则执行的是直接初始化。string s1...

2020-04-21 08:27:51 162

原创 后台开发工程师技术能力体系之编程语言3——继承与派生

继承与派生  面向对象程序设计基于三个基本概念:数据抽象(封装)、继承和动态绑定(多态)。通过使用数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以一定程序上忽略相似类型的区别,而以统一的方式使用它们的对象。  继承和动态绑定对程序的编写有两方面的影响:1、我们可以更容易地定义与其他类相似但不完全相同的新类;2、使用这些彼此相似的类编写程...

2020-04-21 08:26:53 230

原创 后台开发工程师技术能力体系之编程语言2——类与对象

类与对象  结构化设计是以功能为目标来构造应用系统,这种设计思路使得程序员不得不将由客体构成的现实世界映射到由功能模块组成的解空间中,背离了人们观察和解决问题的基本思路。面向对象的设计思想,让计算机直接模拟现实的环境,用人类解决问题的思路、习惯和步骤来设计应用程序,更加符合人类理解现实世界的思维。1.类的基本概念// 头文件Sales_data.h#ifndef SALES_DATA_H...

2020-04-21 08:26:01 221

原创 后台开发工程师技术能力体系之编程语言1——语法

语法1. 函数函数定义:  函数是一个命名了的代码块,我们通过调用函数执行相应的代码。函数可以有0个或多个参数,通常会产生一个结果。可以重载函数,也就是说,同一个名字可以对应几个不同的函数。  函数的调用需要完成两项工作:一是实参初始化函数对应的形参;二是将控制权转移给被调用函数,此时,主调函数的执行被暂时中断,被调函数开始执行。当遇到一条return语句时函数结束执行过程,和函数调用一样...

2020-04-21 08:24:29 206

翻译 DirectX教程(9):绘制三角形

  在本节中,我们将学习在屏幕上绘制三角形。我们将通过创建一系列顶点并让硬件在屏幕上绘制这些顶点来构建这个三角形。这需要很多代码。渲染三角形需要执行许多操作,本节很长,将分为以下几部分:1、首先,我们告诉GPU如何渲染我们的几何;2、第二,我们创建三角形的三个顶点;3,第三,我们将这些顶点存储在显存中;4、第四,我们告诉GPU如何读取这些顶点;5、第五,最终我们渲染三角形。使用sharders...

2020-03-23 17:48:09 1531 1

翻译 DirectX教程(8):全屏显示

  使游戏全屏显示很容易,但是需要更改程序的一些细节,并添加几行代码。在本节中,我们将介绍两件事:首先,我们将介绍如何全球化你的屏幕分辨率以及为什么要这样做;其次,我们将介绍如何使窗口进行全屏模式并再次返回的机制。设置屏幕尺寸  在你的DirectX游戏编程中,你会遇到许多需要了解屏幕尺寸的函数和结构体。当你决定更改分辨率,尤其是当你决定在运行时更改分辨率时,这可能会很麻烦。现在,我们将介绍一...

2020-03-20 12:22:06 1889

翻译 DirectX教程(7):渲染框架

  Direct3D初始化后,就该开始进行一些实际的渲染。渲染本身非常容易,但涉及到一些准备工作。在本课程中,我们将一遍又一遍的设置所有内容以渲染一个空白帧。涉及到的设置非常简单,主要有两件事要做:首先,我们需要高速GPU在内存中的哪个位置创建最终图像(对我们来说,是在后台缓冲区);其次,我们需要告诉GPU应该在后台缓冲区上的哪个位置进行绘制。一旦完成这两个步骤,我们就可以渲染了,而渲染很简单。...

2020-03-20 10:31:38 878

翻译 DirectX教程(6):初始化Direct3D

  在上一节,我们已经研究了关于Direct3D的基本概率,现在让我们开始构建一个简单的Direct3D程序,以便深入探讨实际问题。在这个程序中,我们只是初始化Direct3D,然后将其关闭。虽然内容不多,甚至连一个“hello world”级别都不算,但这是一个好的开始。COM  COM是组件对象模型(Component Object Model)的缩写,它是一种创建非常高级对象的方法,它的...

2020-03-19 11:28:43 1910

翻译 DirectX教程(5):了解图形概念

  不论是构建自己的引擎还是改进或使用引擎,都需要了解关于引擎的基本概念。与游戏引擎基本概念同样重要的是D3D的基础知识。本节将介绍D3D的基础知识,以及推出第一个D3D程序所需的知识。这一节主要是理论,下一节将介绍实践练习。图形硬件  学习图形编程首先需要对图形所涉及的硬件进行充分的了解。因为与其说D3D是一个游戏平台,还不如说是硬件接口,你在D3D上所做的所有操作实际上都是为了操纵图形硬件...

2020-03-12 23:46:12 711

翻译 DirectX教程(4):实时消息循环

  在本节中,我们将介绍PeekMessage()函数,以及该函数与GetMessage()函数的区别。实际上,GetMessage()函数并没有什么区别,只是它的工作方式在游戏和持续活动中并没有取得惊人的成绩。我们将讨论这是什么原因以及PeekMessage()又是如何解决这个问题的。GetMessage()的循环结构  在上一节中,我们使用GetMessage()函数构建了一个简单的Win...

2020-03-12 19:51:57 394

翻译 DirectX教程(3):窗口尺寸和客户端尺寸

  当使用图形时,知道绘制区域的确切尺寸十分重要。在上一节中,我们创建了一个窗口,并将其尺寸设置为(500,400,但是该窗口在D3D中绘制的尺寸并不是(500,400)。在本节中,我们将介绍绘图区域的实际尺寸,并学习一个更加精确设置窗口尺寸的函数AdjustWindowRect()。窗口尺寸 vs 客户端尺寸  当我们调用CreateWindowEx()函数时,我们分别使用500和400来设...

2020-03-12 16:01:42 1163

翻译 DirectX教程(2):创建一个窗口

  与消息框不同,没有可以调用的单个函数用来创建窗口。这里有两个原因:一、创建窗口创建需要太多的数据;二、窗口是基于事件的,而事件需要其他代码来处理。当事件发生时,Windows便发送一个消息到我们的程序,然后由WindProc()函数进行处理。  这一节将分三个部分进行介绍。首先,我们将展示用于创建窗口的代码,然后将详细解析程序中两个重要的部分,以了解它们的工作方式以及在必要时如何进行操作。...

2020-03-11 22:34:27 877

翻译 DirectX教程(1):基本Windows入门

Win32控制台程序 vs. Windows程序  下面是一个简单的Win32程序,main函数是程序的起点,Windows能够向程序输入任何你认为必要的参数。#include <stdio.h> // include the standard input/output header filevoid main(void) // our program starts...

2020-03-10 18:11:44 1807

原创 TCP/IP系列文章(3):Internet协议

  IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP数据都是通过IP数据报传输。IP提供了一种尽力而为、无连接的数据报交付服务。  “尽力而为”的含义是不保证IP数据报能成功到达目的地。虽然IP不是简单丢弃所有不必要流量,当它也不对自己尝试交付的数据报提供保证。当某些错误发生时,例如一台路由器临时用尽缓冲区,IP提供一个简单的错误处理方法:丢弃一些数据(通常是最后到达...

2020-03-05 18:13:54 282

原创 TCP/IP系列文章(1):概述

分层  图1.6展示了链路层自底向上如何进行分解,这里使用以太网作为例子:以太网帧包含一个48位的目的地址(又称MAC地址)和一个16位的以太网类型字段。0x0800表示这个帧包含IPv4数据报、0x0806表示ARP、0x86DD表示IPv6。假设目的地址与接收方的一个地址匹配,这个帧将被接收并校验差错,以太网类型字段用于选择处理它的网络层协议。  如果接收到的帧包含一个IP数据报,...

2020-03-03 17:08:17 90

原创 c++系列文章(12):表达式

  表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。字面值和变量是最简单的表达式,其结果就是字面值和变量的值。把一个运算符和一个或多个运算对象组合起来可以生成较复杂的表达式。表达式的基本概念  C++定义了一元运算符和二元运算符,此外还有一个作用于三个运算对象的三元运算符。函数调用也是一种特殊的运算符,它对运算对象的数量没有限制。  在表达式求值的过程中,运算对象常常需要由一种类...

2020-03-02 19:41:55 540

原创 c++系列文章(11):多维数组

  严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。当一个数组的元素仍然是数组时,通常使用两个维度来定义它:一个维度表示数组本身大小,另一个维度表示其元素(也是数组)大小。int ia[3][4]; //大小为3的数组,每个元素是含有4个整数的数组int arr[10[20[30] = {0}; //大小为10的数组,其个元素是大小为20的数组,这些数组的袁术是含有30...

2020-02-29 11:14:02 200

原创 c++系列文章(10):C风格字符串

  尽管C++支持C风格字符串,但是C++程序中最好还是不要使用它们,因为C风格字符串不仅使用不方便,而且极易引发程序漏洞,是诸多安全问题的根本原因。  字符串字面值是一种通用结构的实例,这种结构就是C风格字符串。C风格字符串不是一种类型,而是为了表达和使用字符串而形成的一种约定俗成的写法。按此习惯书写的字符串存放在字符数组中并以空字符结束。以空字符结束的意思是在字符串最后一个字符后面跟着一个空...

2020-02-26 16:46:49 149

原创 c++系列文章(9):数组

  数组是一种类似于vector的数据结构,数组也是存放类型相同的对象的容器,但数组的大小确定不变,不能随意向数组中增加元素。标题定义和初始化内置数组  数组的声明形式为“a [d]”,其中a是数组的名字,d是数组的维度。维度说明了数组中元素的个数,因此必须大于0。数组中元素的个数d也属于数组类型的一部分,编译的时候维度应该是已知的,也就是说,维度必须是一个常量表达式。unsigned cn...

2020-02-26 12:47:31 172

原创 c++系列文章(8):标准库类型string、vector

string初始化string对象的方式:string s1; //默认初始化,s1是一个空串string s2(s1); //直接初始化,s2是s1的副本string s3("value"); //直接初始化,s3是字面值“value”的副本,除了字面值最后的那个空字符外string s3 = "value"; //拷贝初始化,等同于s3("value"),s3是字面值"value"的...

2020-02-25 11:00:34 103

原创 c++系列文章(7):自定义数据类型

自定义数据类型  类体右侧的表示结束的花括号后必须写一个分号,这是因为类体后面可以紧跟变量名以示对该类型对象饿定义,所以分号必不可少。分号表示声明符的结束,一般来说,最好不要把对象的定义和类的定义放在一起。struct Sales_data {} /*......*/} accum,trans,*salesptr;// 与上一条语句等价,但可能会更好struct Sales_data {/...

2020-02-20 12:25:51 194

转载 python3系列文章(1):直接复制、浅拷贝和深度拷贝

参考博客:Python 直接赋值、浅拷贝和深度拷贝解析概述:直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象解析:1、b = a: 赋值引用,a 和 b 都指向同一个对象。2、b = a.copy(): 浅拷贝, a 和 b 是一个独立...

2020-01-15 10:32:01 106

原创 c++系列文章(6):类型别名和自动类型

博客链接类型别名  类型别名是一个名字,它是某种类型的同义词。使用类型别名可以使复杂的类型名字变得简单明了、易于使用。c++有两种方法用于定义类型别名:typedef和using。  typedeftypedef double wages; //wages是double的同义词typedef wages base,*p; //base是double的同义词,p是double*的同义词...

2019-12-21 15:44:32 239

原创 c++系列文章(5):constexpr和常量表达式

  常量表达式是指值不会改变并且在编译阶段就能得到计算结果的表达式,显然字面值属常量表达式,用常量表达式初始化的const对象也是常量表达式。  一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定。//staff_size不是常量表达式,尽管staff_size的初始值是个字面值常量,但是它的数据类型只是一个普通的int而非const int。int staff_size =...

2019-12-21 10:45:46 169

原创 c++系列文章(4):const限定符

初始化const对象一旦创建后其值就不能再改变,所以const对象必须初始化,且初始值可以使任意复杂的表达式。const int i = getsize(); //运行时初始化const int j = 1; //编译时初始化...

2019-12-10 21:54:07 57

原创 c++系列文章(3):复合类型——指针和引用

复合类型是指基于其他类型定义的类型,本文主要介绍其中的两种:指针和引用。最简单的声明语句由一个数据类型和紧随其后的一个变量名列表组成,但更通用的描述是,一条声明语句由一个基本数据类型和紧随其后的一个声明符列表组成。每个声明符命名了一个变量并指定该变量为与基本数据类型有关的某种类型。...

2019-12-08 20:57:48 83

原创 c++系列文章(2):分离式编译——变量的声明和定义

博客链接  C++语言支持分离式编译,该机制允许将程序分割成若干个文件,每个文件可被独立编译。如果将程序分为多个文件,则需要在文件之间共享代码,例如一个文件中的代码可能需要使用另一个文件中定义的变量,如cin和cout在标准库中定义,我们却能在自己的程序中使用。声明和定义  为了支持分离式编译,C++语言将声明和定义区分开来。声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含...

2019-12-06 23:05:40 135

原创 c++系列文章(1):signed和unsigned

  **带符号类型(signed)**可以表示正数、负数或0,**无符号类型(unsigned)**仅能表示大于等于0的值。C++标准并没有规定signed类型应该如何表示,但约定了在表示范围内正值和负值的量应该平衡。在计算机内部,signed类型二进制的最高位是符号位,用来表示正负,其余二进制位用来表示数值;unsigned类型的所有二进制位都用于表示数值。类型最小值最小值大小...

2019-12-06 21:46:16 1270

汇编语言王爽.pdf

王爽老师的《汇编语言》,全书通俗易懂,非常适合刚刚学习汇编的同学看,很有用

2015-01-07

64bitwin7DebugSolution.rar

解决64位win7,win8无法安装dosbox的问题,里面有操作提示及dosbox的安装程序

2015-01-07

空空如也

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

TA关注的人

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