- 博客(28)
- 收藏
- 关注
原创 极速搜索神器源码
DataManager.cpphttps://github.com/liangbin712/Rich_bingo/blob/master/DataManager.cppDataManager.hhttps://github.com/liangbin712/Rich_bingo/blob/master/DataManager.hCommon.hhttps://github.com/lian...
2019-08-13 20:48:15 454
原创 资源共享窝项目
资源共享窝客户端:https://github.com/liangbin712/Rich_bingo/blob/master/SharedLoad_Clinet.cpp资源共享窝服务端https://github.com/liangbin712/Rich_bingo/blob/master/SharedLoad_Server.cpp大佬库httplibhttps://github.com...
2019-08-13 17:43:43 1491
原创 C++异常
C语言传统处理错误的方式:1.终止程序。这就很恶心。直接导致程序崩溃。2.返回错误码:在出现一些错误时,会返回错误码,程序员需要到错误码表中查找对应错误信息。C++异常概念:当一个函数发现自己无法处理一个错误时,它就通过抛异常的方式将异常给另一个函数来处理。这里引出了throw,catch,try。throw:将会出现异常的变量用throw关键字来修饰。catch:将想要处理异常交给c...
2019-08-08 18:17:54 198
原创 智能指针
智能指针出现原因原因有:1,在给一个对象申请空间后,有时会忘了释放,就会造成类存泄露。2,异常安全问题,如果在malloc和free之间出现异常,那么就会造成内存泄露。这种问题叫做异常安全。智能指针的使用及原理**RAII:**是一种利用对象生命周期来控制程序资源的简单技术。在对象构造时获取资源,在对象整个生命周期有效,在对象析构时释放资源。这样做有两大好处1.不用显示地释放资源2.在...
2019-08-08 11:43:40 133
原创 C++多态基础
多态概念:多态: 通俗的说就是某个具体行为由不同对象去完成就会产生不同的效果。举个例子:公交车刷卡,成人/普通人刷卡单程都是1元,但老年卡/学生卡就是0.5元。继承中多态的构成条件:1.行为函数调用基类对象的指针或者引用。2.行为函数调用的函数必须是虚函数。3.派生类与基类的虚函数必须构成重写。虚函数的重写:基类的虚函数与派生类的虚函数返回值,参数,函数名都相同时,虚函数构成重写;...
2019-07-26 23:27:34 187
原创 C++继承
继承概念及定义:继承是用于类和类之间的,继承是为了代码的复用,是原有的类的功能基础上,功能又得到拓展,被拓展的类是派生类/子类,继承的类叫做基类/父类。看代码说话。继承定义格式:class B :public A其中B是子类,A是基类。class A{ public: int _a;};class B : public A{ public: ...
2019-07-07 20:06:43 191
原创 C++内存管理基础
C++内存布局的划分说到C++内存管理,我们首先要知道的是C++内存布局的划分。C++将内存划分为:栈(自上而下的增长方式)区,堆区(自下而上的增长方式),全局区(初始化的全局变量/静态变量+为初始化的全局变量),文字常量区,代码区。或者堆、栈、自由存储区、全局/静态存储区和常量存储区(文字常量区+代码区)。这里的自由存储区是抽象化的概念,它是区别malloc,free和new delet...
2019-06-28 13:31:42 142
原创 网络通信基础知识总结(一)应用层+传输层TCP/UDP
如果客户端要向服务端发送访问网站的请求,例如“www.baidu.com",首先会进行DNS域名解析得到IP地址。通过应用层,浏览器从访问的IP地址解析出默认的端口号80;再用端口号和IP地址与web服务器(我们常说的web是网站服务器)建立一条tcp连接通道,建立TCP连接之后,浏览器向web服务器发送一条HTTP请求报文web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。we...
2019-06-11 20:11:55 4066
原创 只能在栈/堆上创建对象
只能在堆上创建对象class HeapOnly{ public: static HeapOnly *Create() { return new HeapOnly; } int u; private: HeapOnly() { ...
2019-06-02 19:48:46 167
原创 C++模板初阶
**函数模板**函数模板原型结构为:template <数据类型参数表>函数返回值类型 函数名(函数参数表)需要注意的是,数据类型参数表不同于函数参数表,数据类型参数表是数据类型,函数参数表是参数;数据类型参数表可以有多个表项组成,每个表项有关键字typename或者class + 数据类型名,两者都是一样的,不过习惯上为了与C++标准库的模板保持一致,常用class+类型名...
2019-05-31 12:36:43 165
原创 类与对象
我们都说C语言是面向过程的语言,C++是面向对象的语言,C++面向对象的设计体现之一就是类的出现,类本质上是一个数据结构,它的定义并没有数据出现,也就是没有在栈开辟大小空间,只有类实例化的对象才有栈空间,但是特别注意的是一个空类的大小为1,并不是0;类这中数据结构实例化出来的变量就是对象。后面介绍对象。类有6个默认成员函数:构造函数,析构函数,拷贝构造函数,运算符重载函数,取地址操作符重载,co...
2019-05-21 11:08:45 312
原创 进程与线程
什么是进程?百度上进程是这样说的“进程是操作系统进行资源分配和CPU调度的基本单位”;其实这个概念是概括型的,它要分操作系统的类型。拿Linux来说,进程是操作系统进行资源分配的基本单位,线程是CPU调度的基本单位。后面我来介绍线程。对于我们用户而言,进程是正在运行的程序,对于操作系统而言,进程需要运行,操作系统需要描述进程的运行信息状态来管理它们,而描述这个进程用的是task_struct这...
2019-05-16 22:34:32 191
原创 C++初学必知
**C++发展史**一、什么是C++?它有哪些优点?C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程...
2019-05-14 17:59:32 194
原创 进程调度算法
进程调度算法:在系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。进程调度任务(1)首先保存当前进程的处理机的现场信息(2)按照算法选取进程(3)把处理器分配给进程。(将选中进程的进程控制块内有关处理机现场现场的信息装入处理机相应寄存器中,进程...
2019-05-03 12:47:43 240
原创 信号处理趣谈
信号的替换:信号替换有以下两种方式1.typedef void(*sighandler_t)(int);sighandler_t signal(int signum,sighandler_t handler);2.int sigaction(int signum,const struct sigaction *act, struct *oldact);此两种都为信号的替换,但他们有何...
2019-04-30 23:51:56 381
转载 linux基础常用工具
我们刚开始学linux,除了知道基础命令操作外,我们的刚需就是编辑器和编译器,说一下我所知道的几个;常用的编辑器:Notepad++:Notepad++是一款免费但优秀的代码编辑器,运行在Windows环境下,可以支持多种编程语言。它在50多种程序、脚本和标记语言上都有着语法高亮、代码折叠等功能。用户可以人为设置当前语言,它还支持实现一些编程语言的API。Vim:它是从vi发展出来的一个文本...
2019-04-25 11:32:53 195
原创 linux基本知识整理(一)
在目录中执行增删查(cd, touch, ls, rm, mv)改文件动作, 需要哪些权限cd 命令:需要所有者的x权限touch命令:需要所有者r权限ls命令:需要所有者r权限rm命令:需要所有者r权限mv命令:需要所有者x权限*Linux下的重要目录/proc, /sys, /bin, /usr/lib, /usr/local,等**/proc是 进程目录ps a...
2019-04-02 16:52:40 163
原创 C语言宏的坑必须注意
我们知道宏和typedef有相似之处,就是他们都可以进行类似于替换的功能。此处对于宏的用法,替换的时候不免有些坑,如下:#define ADD(x, y) x+yint main(){ int a = ADD(10,20) * ADD(10, 20); printf("%d\n", a); return 0;}我们在上面宏定义的是一个加法的函数内容是x+y,...
2019-03-13 17:46:44 381
原创 文件操作学习后整理
首先整理了一位大佬的文章一部分:C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的读写操作 fgetc 从文件中读取一个字符 fputc 写一个字符到文件中去 ...
2019-03-12 17:47:35 172
原创 结构体大小与内存对齐
1.什么是结构体内存对齐和为什么要对齐?元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每个元素放置到内存中时,它都会认为内存是按照自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始。2.结构体内存怎样对齐?1.先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加...
2019-02-24 12:59:26 186
转载 必须注意的typedef
该博客是转载自http://c.biancheng.net/view/298.html,不过后面有一个小错误,char *const并非常量指针,而是指针常量,我已修改过。c语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可...
2019-02-21 17:15:39 867
原创 回调函数
回调函数简谈回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外一个方调用的,用于对该事件或条件进行响应。#include <stdio.h> ...
2019-01-30 15:51:49 120
原创 数组指针,函数指针,函数指针数组小谈。
数组指针数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //...
2019-01-28 21:35:53 93
原创 一级指针,二级指针指针数组的理解
一级指针和二级指针一级指针就是我们常说的广义上的指针,根据指针定义指针是指向所要使用的数据在内存中的地址,如下代码,指针p是用来指向a存储数据10的地址的,等于说访问p相当于找到了a的房间号,*p就是进入房间获取房间内容,这个操作叫解引用。二级指针就是指针的指针,一级指针对应的是a的房间号,p2指向的是p,因为p是指针,所以p2相对于a来说是指针的指针。p3是一个二级指针,但是它和p2不同,因...
2019-01-25 10:31:53 337
原创 强大的链表
相信很多人玩过即时战略游戏,例如魔兽争霸,红色警戒等。可是大家有没有考虑过,每个战斗单位都有它自己的属性,计算机是如何为创造出来的部队分配内存呢?显然,部队的数量在程序执行之前是未知的,如果用数组来储存这些数据,部队多少数据在游戏运行时是未知的,它是在游戏运行时点一个兵造一个兵,它是动态的,如果设置一个很大的内存值,可以满足造兵需求,但我们不一定把这个值用完,那么就会造成内存的浪费。有人会想到用...
2018-12-12 13:27:20 85
原创 自定义数据类型——结构类型
C++中自定义数据类型还有一种称为结构类型,并且把该类型的各种数据类型一一整合到其中。学号 —— 类型姓名 ——字符串学生年龄——整型院系——字符串平均成绩——浮点型每个学生的信息成为了一个整体,杂乱的数据和每个学生一一对应了起来,方便管理。如果需要创建学生类型,就可以这样写。#include &lt;iostream&gt;using ...
2018-12-01 14:50:39 639
原创 自定义数据类型——枚举类型
学习了一个月C语言,却从来没有更新过博客,没有总结的学习是不完整的。好了,其实我是走c++方向的,就提前看了c++的有关内容。c++除了和c语言一样常用的数据类型,他们还有允许用户自己来设计的一些数据类型,比如枚举型数据,结构型数据和链表。我就简单的总结下枚举类型。枚举类型允许用户自己来定义一种数据类型,并且列出该数据类型的取值范围。定义枚举类型的格式为:enum 类型名{常量1,常量2,常...
2018-11-30 16:19:32 1240
转载 C语言操作符整理
操作符 分类: 算术操作符 移位操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员算术操作符操作符 功能加减乘/ 除% 求余数(取模)加、减、乘很简单,和平常数学中运算规则相同。/(除)这个操作符需...
2018-11-27 15:58:53 107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人