自定义博客皮肤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)
  • 资源 (7)
  • 收藏
  • 关注

原创 编译器对属性和方法的处理机制之二

很多对象公用一块代码,代码是如何区分是具体哪个对象呢?编译器是这么处理的,隐式的传递一个this指针进去,这个指针指向这个对象的首地址。 代码如下: #include <iostream>using namespace std;class Te...

2020-01-18 14:10:46 123

原创 c++编译器对属性和方法的处理机制一

通过上面的案例,我们可以的得出:1)C++类对象中的成员变量和成员函数是分开存储的成员变量:普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式静态成员变量:存储于全局数据区中成员函数:存储于代码段中。代码如下,注意看注释:#include "iostream"using namespace std;class C1{publ...

2020-01-18 13:59:44 330

原创 静态成员变量

1)定义静态成员变量 关键字 static 可以用于说明一个类的成员, 静态成员提供了一个同类对象的共享机制把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员静态成员局部于类,它不是对象成员 例如:...

2020-01-17 20:12:40 2987

原创 对象的动态建立和释放

1 new 和 delete基本语法 1)在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数。注意: new和delete是运算符,不是函数,因此执行效率高。 ...

2020-01-17 19:46:31 395

原创 匿名对象中调用匿名对象是危险行为

具体看如下代码:#include "iostream"using namespace std;//构造中调用构造是危险的行为class MyTest{public: MyTest(int a, int b, int c) { this->a = a; this->b = b; this->c = c; } MyTest(int a, in...

2020-01-17 18:19:28 139

原创 c++中的对象初始化列表

(1) 对象初始化列表出现的原因 1.必须这样做: 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数 ()。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成 第一步,就会报错。 ...

2020-01-17 18:00:01 959

原创 c++种的浅拷贝与深拷贝

具体看如下注释和代码:#define _CRT_SECURE_NO_WARNINGS #include<iostream>using namespace std;class Name{public: Name(const char* pname) { size = strlen(pname); pName = (char*)malloc(size...

2020-01-17 12:05:28 138

原创 关于4种copy构造函数复习的代码示例

具体看代码和注释,如下:#include <iostream>using namespace std;void objplaymain71();class Test{public: Test() { a = 0; b = 0; cout << "无参数构造函数 自动被调用" << endl; } Test(int _a)...

2020-01-17 11:21:20 145

原创 copy构造函数的第四种应用场景

1 copy构造函数的第四种应用场景 #include<iostream>using namespace std;class Location{public: Location(int xx = 0, int yy = 0) { X = xx; Y = yy; cout<<"Constructor Object."<...

2020-01-17 10:54:00 240

转载 c++设计模式--模板方法模式

模板方法模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对模板方法模式是这样说的:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的接口即可重定义改算法的某些特定步骤。我结合我在实际开发项目中的一个例子来说说这个模板方法模式吧。我们曾经做过一款产品,这个产品类似于一个云端的文件管理客户端。对于这样的一个客户端,由于其云端的...

2020-01-12 17:40:03 422

转载 c++设计模式-—访问者模式

访问者模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对访问者模式是这样说的:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。该模式的目的是要把处理从数据结构分离出来。访问者模式让增加新的操作很容易,因为增加新的操作就意味着增加一个新的访...

2020-01-12 16:49:24 122

转载 c++设计模式之策略模式

策略模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对策略模式是这样说的:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。该模式使得算法可独立于使用它的客户而变化。策略模式为了适应不同的需求,只把变化点封装了,这个变化点就是实现不同需求的算法,但是,用户需要知道各种算法的具体情况。就像上面的加班工资,不同的加班情况,有不同的算法。我们不能在程序中将计算工资的算法进行...

2020-01-12 15:15:31 156

转载 c++设计模式之状态模式

前言在实际开发中,我们经常会遇到这种情况;一个对象有多种状态,在每一个状态下,都会有不同的行为。那么在代码中我们经常是这样实现的。typedef enum tagState{ state, state1, state2}State; void Action(State actionState){ if (actionState == st...

2020-01-12 14:28:29 196

转载 c++设计模式之一:观察者模式

观察者模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对观察者模式是这样说的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。当一个对象发生了变化,关注它的对象就会得到通知;这种交互也称为发布-订阅(publish-subscribe)。目标是通知的发布者,它发出通知时并不需要知道谁是它的观察者。再说说上面的数据和图之间的关...

2020-01-12 13:57:49 185

转载 c++设计模式之备忘录模式

备忘录模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对备忘录模式是这样说的:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复过来,需要实现检查点和取消机制,而要实现这些机制,你必须事先将状态信息保存在某处,这样才能将对象恢复到它们先前...

2020-01-10 20:54:57 133

转载 c++设计模式之迭代器模式

迭代器模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对迭代器模式是这样说的:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。一个聚合对象,就是所谓的对象容器了;作为一个容器,都应该提供一种方法来让别人可以访问它的元素;但是,有的时候,我是不希望遍历容器的人知道我的容器是如何实现的;那该怎么办?就像我在大学那样实现的链表,只提供了从头到尾的遍历,如果我...

2020-01-09 18:34:50 116

转载 c++设计模式之:解释器模式

解释器模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对解释器模式是这样说的:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。就如上面说的那个游戏,我输入up walk ...

2020-01-09 17:00:29 135

转载 c++设计模式之命令模式

什么是命令模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对命令模式是这样说的:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在OOP中,一切都是对象,将请求封装成对象,符合OOP的设计思想,当将客户的单个请求封装成对象以后,我们就可以对这个请求存储更多的信息,使请求拥有更多的能力;命令模式同样能够把请求发送者和接...

2020-01-09 10:23:48 457

转载 c++设计模式之:职责链模式

什么是职责链模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对职责链模式是这样说的:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,直到有一个对象处理它为止;如下图:对于每个角色,他们都有他们的职责;当我提交了休假申请时,项目经理需要判断,看看自己能否处理,如果休假超过了2个小时,那么项目经理就不能处理了;项目经理将这个请求提交...

2020-01-08 23:26:42 216

转载 c++设计模式之一:代理模式

什么是代理模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对代理模式是这样说的:为其他对象提供一种代理以控制对这个对象的访问。结合上面的游戏代理的例子和下面的图,我们来进行分析一下。以前你是这样玩游戏:现在有了游戏代理,你是这样玩游戏:代理服务器干了什么?它代替你去和游戏服务器进行交互。它访问游戏服务器的速度比你使用校园网访问游戏服务器的速度快很多。所以,你的游戏延...

2020-01-08 22:38:18 127

转载 c++设计模式之一:享元模式

什么是享元模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对享元模式是这样说的:运用共享技术有效地支持大量细粒度的对象。就如上面说的棋子,如果每个棋子都new一个对象,就会存在大量细粒度的棋子对象,这对服务器的内存空间是一种考验,也是一种浪费。我们都知道,比如我在2013号房间和别人下五子棋,2014号房间也有人在下五子棋,并不会因为我在2013号房间,而别人在2014号房间,...

2020-01-08 20:58:13 118

转载 c++设计模式之一:外观模式

前言在实际开发时,面对一个大的系统,总是会将一个大的系统分成若干个子系统,等子系统完成之后,再分别调用对应的子系统来完成对应的整体功能,这样有利于降低系统的复杂性;最终进行实现某个具体的功能时,我们将对应的子系统进行组合就好了;但是,子系统那么多,关系那么复杂,组合形成一个完整的系统,是存在难度的。我们在使用visual studio进行编译C++代码时,你只是在菜单中选择了Build,然...

2020-01-08 16:33:47 105

转载 c++设计模式之装饰模式

前言在实际开发时,你有没有碰到过这种问题;开发一个类,封装了一个对象的核心操作,而这些操作就是客户使用该类时都会去调用的操作;而有一些非核心的操作,可能会使用,也可能不会使用;现在该怎么办呢?将这些非核心的操作全部放到类中,这样,一个类就包含了很多核心的操作和一些看似有关,但是又无关的操作;这就会使核心类发生“爆炸”的现象,从而使核心类失去了一定的价值,也使使用核心类的客户在核心操作和非核...

2020-01-08 11:46:50 104

转载 c++设计模式之一组合模式

问题描述上图,是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序员的你,如何设计这个OA系统呢?先不说如何设计实现,接着往下看,看完了下面的内容,再回过头来想怎么设计这样的OA系统。什么是组合模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对组合模式是这样说的:将对象组合成树形结构以...

2020-01-06 23:36:02 175

转载 c++设计模式之桥接模式

问题描述现在要去画一个图形,图形有长方形、圆形和扇形等等;而图形又可以加上不同的颜色,然后,我们就可以画出红色的长方形,绿色的长方形;红色的圆形,绿色的圆形等等。而这种图形的形状在变化,图形的颜色也在变化,当使用代码去实现时,如何面对这种多方面的变化呢?这就要说到今天的桥接模式了。什么是桥接模式?对于上述的图形与颜色的问题时,很多时候,我们让各个图形类继承颜色类,比如:cl...

2020-01-06 21:37:05 141

转载 c++设计模式之适配器模式

生活中的适配器买笔记本电脑,买手机时,都有一个电源适配器,电源适配器又叫外置电源,是小型便携式电子设备及电子电器的供电电压变换设备,常见于手机,笔记本电脑上。它的作用是将家里的220V高电压转换成这些电子产品能工作的5V~20V左右稳定的低电压,使它们能正常工作。就是说,如果没有这个电源适配器,我们的手机和电脑就不能进行充电了。之前同事去日本出差,由于工作需要,就将自己的笔记本带过去了。到...

2020-01-06 20:27:54 109

转载 c++设计模式之原型模式

什么是原型模式?在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这这个定义中,最重要的一个词是“拷贝”,也就是口头上的复制,而这个拷贝,也就是原型模式的精髓所在。举一个最简单的例子来说明原型模式:记得上小学的时候,老师把需要做的课外习题写到黑板上,而下面的我们都要把这些题抄写到自己的本子上,回家做好,第二天交上来...

2020-01-06 19:41:07 145

转载 c++设计模式之建造者模式

建造者模式在GOF的《设计模式 可复用面向对象软件的基础》中是这样说的:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这句话,似懂非懂的。一个复杂对象的创建,其通常是由很多的子对象构成;如果一个对象能够直接就创建好了,那么也不会称之为复杂对象。由于项目中需求的变化,这个复杂对象的各个部分经常会发生剧烈的变化,但是,不管怎么变化,将它们组合在一起,组成一个复杂的对...

2020-01-06 17:52:05 122

转载 c++设计模式之单例模式

现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再delete,不要告诉我你是这么干的。在C++中,可以构造一个日志模块的全局变量,那么在任何地方就都可以用了,是的,不...

2020-01-06 11:47:42 95

转载 c++设计模式之三~抽象工厂模式

问题描述之前讲到了C++设计模式——工厂方法模式,我们可能会想到,后期产品会越来越多了,建立的工厂也会越来越多,工厂进行了增长,工厂变的凌乱而难于管理;由于工厂方法模式创建的对象都是继承于Product的,所以工厂方法模式中,每个工厂只能创建单一种类的产品,当需要生产一种全新的产品(不继承自Product)时,发现工厂方法是心有余而力不足。举个例子来说:一个显示器电路板厂商,旗下的显示器电...

2020-01-05 23:14:44 103

转载 c++设计模式之工厂模式

问题描述之前讲到了C++设计模式——简单工厂模式,由于简单工厂模式的局限性,比如:工厂现在能生产ProductA、ProductB和ProductC三种产品了,此时,需要增加生产ProductD产品;那么,首先是不是需要在产品枚举类型中添加新的产品类型标识,然后,修改Factory类中的switch结构代码。是的,这种对代码的修改,对原有代码的改动量较大,易产生编码上的错误(虽然很简单,如果工...

2020-01-05 20:58:38 428

转载 c++设计模式之简单工厂模式

问题描述之前在公司做了一个windows 8平台的阅读器。首先,需要将电子书中的内容渲染到屏幕上,而电子书每一页都包含各种各样的内容,比如:图形、图像和文字等等;不同的内容,就是不同的对象;在将不同的内容渲染到屏幕上之前,就需要new操作,建立不同的对象,然后再在屏幕上进行描绘。这个时候,就需要进行很多new操作,new操作分布在代码的不同地方,管理起来很麻烦,而且也很乱,到后期扩展和维护的时...

2020-01-05 18:49:40 111

spring项目

spring+spring mvc+mybatis+mysql+maven项目实现简单的增删改查

2019-06-07

卷积神经神经网络结构细讲

卷积神经网络细节讲解,其中对CNN的各个基本组件进行了充分的论述。还有讲解了dropout,以及如何理解dropout,最后对目前存在的典型的CNN架构进行了很详细的讲解,不管你是有经验的,还是新手,都可以从中得到一些启发

2018-08-23

yolov1的tensorflow实现

yolov1的tensorflow实现,我对其做了完整的注释,针对于入门的同学,下载即可运行

2018-08-07

这是一个maven+springmvc+spring+hibernate整合的简单项目,自己写的可运行,完美的演示了这一整套的流程,欢迎下载使用学习

这是一个maven+springmvc+spring+hibernate整合的简单项目,自己写的可运行,完美的演示了这一整套的流程,欢迎下载使用学习。

2018-05-27

使用jsp+servlet+mysql+tomcat的java web,很简单,只是一个流程,供大家参考

使用jsp+servlet+mysql+tomcat的java web,很简单,只是一个流程,供大家参考

2018-01-14

java实现Flappy bird

本程序是用java写的,实现了Flappy bird,并且在这之上加了背景音乐,数据库等内容,还有如何操作excel表格的第三方插件等,适合新手学习和交流

2018-01-14

空空如也

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

TA关注的人

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