自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 致敬科比,实现查询科比每赛季数据的Web服务器

前言:我从2007-2008赛季,加索尔来湖人之后,湖人三进总决赛的第一个赛季开始喜欢科比,那时候我五年级,现在十年过去了,我大三了,科比已经退役两年了。 我目前的技能足以支持我实现一个简单的关于科比的Web服务器,这是我两前,2016-4-14日(科比最后一场比赛)结束以后,就想完成的事情。使用技术 网络编程 多线程 cgi机制 shell脚本开发环境 centos 6.5 ...

2018-08-09 16:59:50 3514 1

原创 模拟实现atoi函数

int atoi(const char* ptr) ; 1.跳过前面的空白字符(例如空格,tab缩进)等,可以通过isspace( )函数来检测; 2.遇上数字或正负符号才开始转换,而在遇到非数字或’\0’才结束转换,并将结果返回。 3.如果 ptr不能转换成 int 或者 ptr为空字符串,那么将返回 0。 4.该函数要求被转换的字符串是按十进制数理解的。ok,知道这些了,实现它就不...

2018-08-20 15:46:57 286

原创 简单介绍C++强制类型转换

在介绍C++强制类型转换之前,我们先来看一看C语言风格的强制类型转换,的确,C风格的强制类型转换用起来很方便。 它的格式是: (类型)变量void test_c_cast(){ //隐式类型转换(相近类型) int i = 1; double d = i; //强转 int* p = &i; int address = (in...

2018-08-20 10:31:02 291

原创 探索类型萃取的必要性

首先我们来实现一个能装string的容器,只实现了尾插和打印接口。template <class T>class SeqList{public: SeqList() :_a(NULL), _size(0), _capacity(0) {} void PushBack(const T& x) { if (_...

2018-08-16 16:04:04 291

原创 C++对象模型图示总结

本文的图片全部是由我自己所画,如有错误,感谢大家指出。菱形继承和菱形虚拟继承 有虚函数的类对象 有虚函数的单继承 有虚函数的多继承 有虚函数的菱形继承 有虚函数的菱形虚拟继承 ...

2018-08-16 09:31:43 616

原创 C++:为什么在继承关系中,父类的析构函数最好定义为虚函数?

我们先来看一段简单代码,A类有一个指针成员_pa,B类公有继承了A类,然后自己有一个指针成员_pb:class A{public: A(int x = 1) :_pa(new int(x)) {} ~A() { cout << "~A()" << endl; }protected: i...

2018-08-15 15:14:33 6215 4

原创 C++:重载,重定义,重写的区别

这是比较容易混淆的概念,在此整理,以便理解。一:重载 重载指的是在同一个作用域内,两函数的函数名可以相同,但是参数不能完全相同,可以是参数类型不同或者是参数个数不同,至于返回值,不影响重载。如图,构成了重载: 如何实现重载? C++代码在编译时会根据参数列表对函数进行重命名,例如void Test(int a, int b)会被重命名为_Test_int_int,void Tes...

2018-08-15 14:44:31 20651 8

原创 C++写时拷贝

一:浅拷贝 一个类,如果不写拷贝构造函数,那么它的默认拷贝构造函数为浅拷贝,浅拷贝有什么问题呢? 拿一个简单的String类举例:class String{public: String(char* str = "\0") :_str(new char[strlen(str)+1]) { strcpy(_str, str); } ...

2018-08-14 19:57:14 1629

原创 模拟实现C++的new/delete

本文只讨论关于自定义类型的new/delete。模拟实现new:template<class T>T* New(size_t n){ //先开辟一段空间,要多开4字节,用来存放开了多少个对象 T* ptr = (T*)operator new(sizeof(T)*n+4); *((int*)ptr) = n; //ptr向后移4字节,开始给...

2018-08-13 15:19:24 291 1

原创 C++中const关键字

一:const修饰指针变量int num = 0;1.const在 * 前面,表示const修饰指针指向的内容const int* p = #int const* p = #2.const在 * 后面,表示const修饰指针变量int* const p = #二:const修饰成员函数 首先来看一下普通成员函数:cla...

2018-08-13 11:20:53 171

原创 C语言static关键字的作用

一:当static修饰函数或者代码块之外的变量时 改变的是函数或全局变量的链接属性,外部链接属性变为内部链接属性,而存储类型和作用域不受影响。 换句话说,被static修饰的函数或全局变量,只能在当前源文件中访问。二:当static修饰代码块内部的局部变量时 在函数中定义局部变量,如果没有被声明为其他类型的变量都是自动变量,自动变量属于动态存储类型,函数调用结束后即被释放。 但有时候需...

2018-08-11 08:38:05 412

原创 宏和函数有什么区别?

define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏。 宏分为普通宏定义和函数宏定义: 普通宏定义:#define MAX 1024 函数宏定义:#define MIN(a, b) ((a) < (b) ? (a) : (b))宏函数可以完成一些简单的运算,那么宏为什么不能取代函数呢?它们有什么区别?从代码长度来看: 宏每次使用都插入到程序中对应的位置...

2018-08-10 11:27:23 285

原创 一个C语言程序的编译过程

这是一个再简单不过的C语言程序:#include <stdio.h>int main(){ printf("hello world!\n"); return 0;}执行gcc test.c,就使一个源文件变成了可执行文件,这个步骤我们很熟悉,但是从一个源文件(.c文件)到可执行程序到底经历了哪几步,每一步具体做了什么,这是我想要总结一下的:一:...

2018-08-10 11:01:48 2393

原创 如何建立Windows和Linux之间的共享文件夹

以win10和centos为例:第一步,点击虚拟机,设置: 第二步,点击选项: 第三部,点击共享文件夹,点击总是启用,然后点击添加: 第四步,添加共享文件夹: 添加成功之后,在 /mnt/hgfs 目录下,就会有共享文件夹。 ...

2018-08-10 07:20:24 9645 3

原创 总结指针和引用的区别

一:什么是引用 引用就是给一个已经定义的变量起一个别名,并没有定义新的变量; 引用的格式为:类型& 引用变量名 = 已定义过的变量名; int a = 1; int& b = a; cout << &a << endl; cout << &b

2018-08-07 19:23:50 233

原创 详细解读域名解析(DNS)

DNS是一个从域名映射到IP地址的系统。一:DNS的背景 TCP/IP使用IP地址和端口号来瞄准对应网络上一台主机的一个进程,但是IP地址不好记; 于是有了主机名(字符串),并且使用hosts文件来描述主机名和IP地址的关系。 如图: 最初是互联网信息中心来管理这个hosts文件,如果一个计算机想接入网络,或想变更IP,都需要到信息中心申请,其他计算机也要定期更新hosts文件才能...

2018-08-03 16:07:25 3512

原创 总结数据链路层

上一篇文章说到:网络层实现的是直至目的地址(主机A到主机B)的通信,而具体的实现某一个跳转的通信,是由数据链路层实现的,如图: 具体附链接: https://blog.csdn.net/han8040laixin/article/details/81354588数据链路层的作用:用于两个设备(同一种数据链路节点)之间进行传递。一:简单了解以太网 以太网不是一种具体的网络,而是一种...

2018-08-03 14:01:12 587

原创 总结网络层IP协议

本文主要讨论IP协议及相关内容,如有错误,感谢大佬指正!基本概念: 主机:有ip地址但不进行路由控制的设备 路由器:既有ip地址又能进行路由控制 节点:主机和路由器的统称IP协议: 提供了一种能力,将数据报从A主机发送至B主机,但是不一定能发送到,可靠性是由上层的TCP保证的。IP协议格式 4位版本:指定IP协议的版本,ipv4来说,就是4。 4位首部长度:IP头部有多...

2018-08-02 11:56:41 380

原创 什么是子网掩码?怎么根据子网掩码得到网络号?

在学习子网掩码之前,必须搞懂网段划分互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址分为两部分: 网络号:保证相互连接的两个网段具有不同的标识。 主机号:同一网段内,主机之间虽然具有相同的网络号,但是必须有不同的主机号,这样才能找得到。如图所以,网段不同则必须配置不同的网络号,同一网段内的主机网络号相同但是主机号不同:IP地址为一...

2018-08-01 11:49:41 11568 4

空空如也

空空如也

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

TA关注的人

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