- 博客(13)
- 收藏
- 关注
原创 C++中必须使用初始化列表的几种情况
前言:要理解为什么要使用初始化列表就要先知道构造函数的两个阶段,分别是初始化阶段与计算阶段(计算 赋值)。初始化阶段就是在初始化表区域所做的操作阶段,计算阶段就是在构造函数体内所做的操作阶段。而初始化与赋值是不同的操作,故引出初始化表。一、从特定类型特点讨论1.const 修饰的变量:由const性质知,被const修饰的变量必须要初始化,且所修饰的值不可再被改变,故应将其放入初始化...
2019-01-21 13:31:27
1434
原创 指针与引用的区别
思考:C有了指针,C++中为什么引入了引用概念,引用相比于指针的优势在哪里,或者两者之间还存在什么无法替代的局限性。指针:存储变量的地址,通过访问变量的地址从而去对变量的值做出更改。在指针使用出错的情况下,会出现很多未知的错误,例如越界,失效。所以指针相对来说不太安全,进而引入了引用的概念。引用:在引用给出的概念上讲引用只是变量的别名,不占用内存,对引用做出改变会直接修改被引用的变量值,我...
2019-01-16 19:41:24
172
原创 C/C++关键字 static
修饰对象1 修饰变量: 修饰全局变量:限定全局变量只能在本文件使用,无法在其他文件中使用(当其他文件使用extern关键字时,也不能使用) 修饰局部变量:由于被static修饰的变量总是存在内存中的静态区,所以即使函数运行结束,该静态变量仍然不会被销毁,下次调用函数的时候,还是可以使用到该静态变量。(即static关键字修饰局部变量时有延长变量生命周期的作用,另外,被s...
2019-01-15 15:10:07
384
原创 TCP通讯方式示例代码
#include<string.h>#include<arpa/inet.h>#include<stdio.h>#include<netinet/in.h>#include<bits/socket.h>#include<sys/un.h>#include<unistd.h>#include&
2018-11-14 20:39:03
1124
原创 socket编程基础(TCP)
一、socket简介百度定义:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,又称为套接字。linux下类似于文件描述符。二、知识预备1.网络中信息如何传递,如何使信息到达指定目的地2.网络字节序和主机字节序的区别3.TCP与UDP通信方式的区别(可靠性 连接方式 数据传递方式)4.端口范围及IP地址分类三、API(系统...
2018-11-14 18:59:45
276
原创 shell项目简报之ls命令简单实现
前言:ls命令是linux系统下最常用且最重要的命令,其作用类似于windows的图形界面对用户操作的指引,没有ls命令,便无法知道文件存放位置,存放结构。也就无法对一切皆文件的linux进行准确的操作。正文:一、ls命令解析(分析) ls命令及其参数使用见独立文章,此处主要代码实现ls -l -a -al操作 1、-l 参数是表示输出当前路径(目录...
2018-11-02 17:56:28
1520
原创 八大排序之快速排序(含递归与非递归方式)
一、算法思想快速排序利用的是一种分治思想的排序方法,也是冒泡排序的一种优化。二、排序过程1、先选取一个值作为快速排序的基准,作为学习可以选择第一个数据作为基准,将比基准大的数放在右边,比基准小的数放在左边2、将第一个数据下标记为i,最后一个数据下标记为j,选取第一个作为基准后,就从右向左进行寻找,如果数据比基准数大,就继续向左找(j--),如果数据比基准数小,就将该数放到基准数的位...
2018-10-29 17:25:01
311
原创 八大排序之冒泡排序(含两种优化方式)
一、算法思想: 冒泡排序是交换排序中一种简单的排序方法 基本思路就是按照想要的序列方式(增序或降序)对相邻的两个关键字进行比较,不满足目的序列要求的两个关键字进行交换。二、处理过程: 1、将待排序区分为无序区与有序区 有序区为零 2、从无序区首元素开始,两两比较,对不满足目标需求的关键字进行交换,一趟排序后,将最大(最小)的值升至...
2018-10-29 09:04:35
310
原创 shell项目简报之操作提示以及命令解析器
说明:百度得shell定义 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器),相似的还有Windows下的cmd。正文:shell主体框架如下:主要完成对命令的解析以及调用相应的操作下的可执行文件命令解析器: 1 运行方式:利用while死循环支撑解析器的常驻直至用户主动exit退出 ...
2018-09-16 15:45:28
410
原创 函数模板
说明:函数模板的应用场景:通常,编程过程需要用到同一个函数应用于参数不同类型或参数不同数量的情况,虽然函数重载可以解决以上两种情况,但是面对函数体内函数语句一样的情况时就会显得繁琐,函数模板便是在重载函数上对函数体内重复语句的优化,实现重载函数的合并,减少作业量。(注:函数模板也有其限制,例针对两个变量的交换函数应用在数组交换时便行不同,或者是参数数量不同时,下面会讲到)正文:函数模板...
2018-09-06 18:09:43
335
原创 拷贝构造函数 赋值运算符的重载
拷贝构造函数: 先说明使用情景:1.一个对象作为函数参数,以值传递的方式传入函数体; 2.一个对象作为函数返回值,以值传递的方式从函数返回; 3.一个对象用于给另一个对象进行初始化;函数原型:Cperson (Cperson ...
2018-08-03 20:33:46
296
原创 析构函数 构造函数
构造函数:一般用于对象的初始化函数原型:例声明一个Cperson类(成员变量即成员方法的声明暂且不加,下同) 则其默认生成构造函数原型为 Cperson() {} 即必须与类名相同构造函数特点及使用法则: ...
2018-08-03 11:22:54
177
原创 Linux下对文件的操作的相关函数简介及用法
主要涉及的函数原型及参数解释:open函数:用于打开一个普通文件 函数原型 int open(const char *path,int flag,/*int mode*/); 参数解释: const char *path: 即相应路径下的文件名(非当前路径需添加路径) int flag:即文件打开方式 主要有以下几种(包含在#include<f...
2018-08-02 21:50:08
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人