- 博客(40)
- 资源 (6)
- 收藏
- 关注
原创 笔记:Linux环境C++(模板和标准模板库)复习(2)
目录3. 模板(包括函数模板、类模板)共性问题3.1 模板(包括函数模板、类模板)参数缺省值3.2模板(包括函数模板、类模板)的非类型参数3. 模板(包括函数模板、类模板)共性问题3.1 模板(包括函数模板、类模板)参数缺省值以下代码输出结果是什么?#include <iostream> #include <cstring>#include <typeinfo>using namespace std;/*****************模板类型参数
2020-06-02 15:43:43 332
原创 笔记:Linux环境C++(模板和标准模板库)复习(1)
目录1. 函数模版1.1 函数模板形式1.2 函数模板的类型参数1.2.1 类型形式参数(类型形参)1.2.2 类型实际参数(类型实参)1.3 函数模板的编译时机(一次编译、二次编译)1.4 函数模板类型参数隐式推断1.5 函数模板重载2. 类模板2.1 类模板形式2.2 类模板使用方式2.3 类模板 -> 实体化对象(类对象)的过程2.4 类模板中的静态成员变量2.5 类模板的递归实例化2.6 类模板特例化(特化)2.6.1 完全特化2.6.1.1 全模板特化2.6.1.2 成员特化2.6.1.3
2020-05-29 21:55:58 373
原创 笔记:Linux环境C++语言复习(10)
目录25. I/O流25.1 主要 I/O流类25.2 格式化 I\O25.2.1 格式化函数25.2.2 流控制符25.3 字符串流25.4 文件流25.4 二进制 I/O25. I/O流25.1 主要 I/O流类其中,'f’代表该类对文件操作(读\写),'str’代表该类对内存操作(读\写)25.2 格式化 I\O25.2.1 格式化函数定义:通过调用 I/O对象的成员函数,改变或者获取其中的状态,进而影响格式化数据的形式(格式化函数是类的共有成员函数)例如:int ios::prec
2020-05-26 17:23:39 222
原创 笔记:Linux环境C++语言复习(9)
目录23. 运行时类型识别typeid运算符24. 异常24.1 可能存在的异常情况24.2 C语言中的错误处理机制24.3 C++异常机制24.3.1 C++异常语法24.3.1.1 异常抛出、throw关键字24.3.1.2 异常捕获24.3.1.3 异常举例24.4 异常说明24.5 C++标准异常类23. 运行时类型识别typeid运算符功能一:识别数据的类型用法:#include <typeinfo>typeid(对象/类型/变量/表达式);typeid()运算符返回ty
2020-05-23 16:34:38 187
原创 笔记:Linux环境C++语言复习(8)
目录22. 多态22.1 虚函数覆盖条件22.2 形成多态的条件22.3 概念:纯虚函数、抽象类、纯抽象类22.3.1 纯虚函数22.3.2 抽象类22.3.3 纯抽象类22.3.4 纯虚函数、抽象类、纯抽象类举例:简单的工厂模式举例22.4 虚析构函数22. 多态多态定义:如果将基类中的某个成员函数声明为虚函数,那么子类中与该函数(基类中声明为虚函数的成员函数)有相同原型的成员函数也是虚函数,并且对基类中的版本形成覆盖;这种情况下,通过指向子类对象的基类指针,或者通过引用子类对象的基类引用,调用虚函数
2020-05-22 14:42:52 338
原创 笔记:Linux环境C++语言复习(7)
目录21. 继承21.1 公有继承21.1.1 向上造型21.1.2 向下造型21.1.3 子类继承基类成员21.1.4 子类成员对基类成员的隐藏21.2 继承方式和访问控制属性对访问成员的限制21.3 子类构造函数21.3.1 子类无参构造函数21.3.2 子类拷贝构造函数21.4 子类析构函数21.5 子类拷贝赋值21.6 多重继承21.6.1 多重继承中向上造型的指针指向21.6.2 多重继承名字冲突21.6.3 钻石继承21.6.3.1 钻石继承的问题虚继承、virtual关键字21. 继承继承
2020-05-20 20:37:43 171
原创 笔记:Linux环境C++语言复习(6)
目录20. 操作符重载20.1 双目操作符重载20.1.1 计算类双目操作符(+、-、*、\...)friend关键字20.1.1 赋值类双目操作符(=、+=、-=、*=、\=...)20.2 单目操作符重载20.2.1 计算类单目操作符(-、~、!、&...)20.2.2 自增减单目操作符(++、--...)20.2.2.1 前缀自增减20.2.2.2 后缀自增减20.2.2.3 举例20.3 输入、输出(<<、>>)操作符重载20. 操作符重载20.1 双目操作符重载
2020-05-19 12:04:57 125
原创 笔记:Linux环境C++语言复习(5)
目录18. 静态成员18.1 静态成员变量18.2 静态成员函数18.3 静态成员变量、静态成员函数应用:单例模式(singleton)单例模式举例19. 成员指针19.1 成员变量指针19.2 成员函数指针18. 静态成员18.1 静态成员变量C++中类数据类型静态成员变量特点:静态成员变量的生命周期为对象创建到进程结束静态成员变量的作用域在声明它的类内部(即,仅在类的内部静态成员变量才可见)要在类的外部访问静态成员变量需要使用类名::静态成员变量名的形式在栈区构造类对象,普通成员变量的存
2020-05-17 19:04:42 141
原创 笔记:Linux环境C++语言复习(4)
目录16. this指针和常函数16.1 this指针必须显式使用this指针的场景16.2 常函数mutable关键字常函数的调用规则Q:常函数与同名非常函数可以构成关系吗?17. 析构函数17.1 析构函数调用时机17.2 缺省析构函数17.3 有成员子对象的对象的构造函数、析构函数调用时机18. 拷贝构造函数和拷贝赋值18.1 拷贝构造函数浅拷贝构造函数、深拷贝构造函数18.2 拷贝赋值类数据类型对象拷贝赋值机制16. this指针和常函数16.1 this指针定义:类的构造函数和成员函数都隐藏
2020-05-16 16:34:16 204
原创 笔记:Linux环境C++语言复习(3)
目录13. 数据类型转换13.1 隐式类型转换13.2 显示类型转换13.2.1 强制类型转换(C、C++兼有)13.2.2 静态类型转换13.2.3 动态类型转换13.2.4 常类型转换编译器对const修饰变量的优化和volatile关键的作用13.2.5 重解释类型转换14. 类14.1 相关概念14.2 类的一般形式14.3 访问控制限定符14.4 构造函数13. 数据类型转换13.1 隐式类型转换定义:内置类型(int、char、double、float…)之间通过编译器自动进行的类型转换
2020-05-15 13:15:52 474
原创 笔记:Linux环境C++语言复习(2)
目录10. 函数10.1 函数重载关系10.1.1 定义10.1.2 函数重载匹配10.1.3 函数重载原理相关知识点:extern "c"声明作用extern "C"声明对重载函数的影响extern "C"声明语法10.2 函数缺省参数10.3 函数的哑元参数10.3.1 定义10.3.2 哑元参数使用场景10.4 内联函数10.4.1 定义10.4.2 内联函数的使用场景11. 动态内存分配12. 引用12.1 定义12.2 常引用12.3 引用作为函数的形式参数12.4 引用作为函数的返回值类型12.
2020-05-11 21:02:55 172
原创 笔记:Linux环境C++语言复习(1)
目录1. C++与C的联系2. C++编译方式3. C++文件常用文件后缀4. C++风格的C语言头文件5. 输入和输出6. namespace(命名空间)关键字6.1 定义namespace6.2 namespace的使用方法6.3 无名命名空间6.4 命名空间的嵌套7. 结构、联合、枚举7.1 结构7.2 联合(建议不使用)7.3 枚举8. 字符串8.1 C++对C语言中字符串的兼容8.2 C++表示字符串的数据类型(实质是一个类)string9. C++的布尔类型1. C++与C的联系都是编译性
2020-05-10 15:31:37 448
原创 标准C拾遗(3)
目录1. 预处理指令1.1 #define1.2 宏操作符 - \#1.3 宏操作符 - \##1.4 条件编译1.5 块注视2. extern关键字3. static关键字4. volatile关键字5. 结构体5.1 数据对齐、数据补齐5.1.1 数据对齐5.1.2 数据补齐6. 枚举类型7. 回调函数(callback)8. 文本文件、二进制文件9. 文件的打开方式(fopen(3)的第二...
2020-04-25 16:25:26 254
原创 标准C拾遗(2)
目录1. 判断for循环退出状态方法2. 伪随机数1. 判断for循环退出状态方法如果for循环触发退出条件退出,那么循环变量一定超过退出条件中的阀值如果for循环由于某种原因在触发退出条件之前就退出,那么循环变量的值一定小于等于退出条件的阀值2. 伪随机数...
2020-04-22 23:18:39 142
原创 标准C拾遗(1)
写在前面:这个专题不是很系统,只是把个人一直容易忘或者容易错的标准C的知识点整理起来,以便随时查看目录1. 标识符命名规则2. \n字符与\r字符区别3. 内置类型与相应占位符4. 对sizeof()括号中变量的操作不影响该变量5. 赋值超出变量可表示的数字范围6. 操作符6.1 赋值操作符(=)6.2 复合赋值操作符(+=、-=、*=、\=)6.3 自增、自减操作符(++、--)6.4 逻辑...
2020-04-20 23:35:06 262
原创 笔记:Linux环境C语言复习(16)// 网络
网络1. 网络相关概念1.1 协议与网络分层1.1.1 OSI模型与网际协议族1.1.2 TCP/IP协议族分层1.2 封装1.3 以太网帧1.4 分用1.5 端口号1.6 IP首部1.7 TCP数据与IP数据报关系1.8 TCP首部1.9 集线器、交换机、路由器,连接不同网帧的两个网络1.10 IP地址、子网掩码1.10.1 IP地址1.10.2 子网掩码1.11 局域网内、跨网段数据传输过程1...
2020-04-20 12:34:53 236
原创 笔记:Linux环境C语言复习(13)// 进程间通信
目录1. 管道1.1 无名管道、pipe(2)1.2 有名管道、mkfifo(3)1. 管道1.1 无名管道、pipe(2)pipe - create pipepipe()创建一个管道,一个用于进程间通信的单向数据通道。数组pipefd用于返回两个分别指向管道两端的文件描述符。pipefd[0]是管道的读端。pipefd[1]是管道的写端。写入管道的写端数据被内核缓冲,直到从管道的读端读取...
2020-04-13 17:21:10 174
原创 笔记:Linux环境C语言复习(15)// 线程
线程1. 线程与进程关系2. 线程创建、退出、分离、回合2.1 线程创建 - pthread_create(3)2.1.1 获取线程id(thread id) - pthread_self(3)2.1.2 举例创建线程举例2.2 线程退出 - pthread_exit(3)2.2.1 exit(3)、pthread_exit(3)、return()区别2.2.2 pthread_exit(3)2....
2020-04-13 10:26:38 194
原创 笔记:Linux环境C语言复习(14)// 信号
目录1. 信号1. 信号信号是软件终端。很多比较重要的应用程序都需要处理信号。信号提供了一种处理异步事件的方法,比如,终端用户键入终端键,会通过信号机制停止一个程序,或及早终止管道中的下一程序。...
2020-04-08 11:34:48 973
原创 笔记:Linux环境C语言复习(12)// 进程相关概念、命令、函数
进程相关知识点程序和进程区别:程序是静态的,存放在磁盘上,是指令的集合; 进程是程序运行的实例,一个程序运行一次产生一个进程每个进程都有独立的PCB(程序控制块)、pid进程是资源分配的基本单位在Linux下,进程间的关系有:父子关系、兄弟关系所有用户级进程形成一颗树,init进程是这棵树的树根,即一号进程,是用户的第一个进程查看用户进程树命令:pstreefork(2) 系统调...
2020-04-02 18:21:23 323
原创 笔记:Linux环境C语言复习(10)// opendir(3)、closedir(3)、readdir(3),文件描述符、文件重定向
文件夹操作库函数opendir(3)opendir - open a directory所需头文件 函数原型 DIR *opendir(const char *name);参数 name - 要打开的文件夹名返回值 成功,返回DIR结构体指针 失败,返回NULL,errno被设置closedir(3)closedir - close a direct...
2020-03-24 18:30:20 216
原创 笔记:Linux环境C语言复习(9)// 元数据、stat命令实现
元数据文件元数据记录了文件所有的状态信息获取元数据stat(1)命令获取文件元数据stat + 文件名Desktop linraffe$:stat giraffe File: giraffe Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: 801h/2049d In...
2020-03-20 19:06:29 259
原创 笔记:Linux环境C语言复习(7)// 系统调用open(2)、close(2)、read(2)、write(2)、lseek(2),文件类型和权限
文件类型和权限文件类型ls命令会列出指定目录中的文件信息Desktop linraffe$:ls -al-rw-r--r-- 1 linraffe linraffe 142 Mar 11 10:01 GdbTest.c-rw-r--r-- 1 linraffe linraffe 27231 Mar 17 15:02 mmap.txtdrwxr-xr-x 2 linraffe ...
2020-03-19 17:44:30 324
原创 笔记:Linux环境C语言复习(8)// 映射相关系统调用、malloc(3)缓存机制
映射相关系统调用mmap(3)、munmap(3)系统调用mmap系统调用mmap - 将文件或设备映射到内存所需头文件 <sys/mman.h>函数原型 void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);参数:addr - 指定创建的映射在线性地址空...
2020-03-18 16:45:23 148
原创 笔记:Linux环境C语言复习(6)//线性地址空间、进程数据在线性地址的分布
线性地址空间1)线性地址空间定义线性地址空间是逻辑上的内存空间,并不实际存在。对于32位系统,线性地址空间大小为4GB(2的32次方),对于64位系统,线性地址空间大小为16EB(1EB = 1024TB)。2)线性地址空间作用对于带有操作系统的电脑,用户要对物理内存进行操作,实际过程是用户对线性地址空间的操作(比如,C语言中我们对变量作取地址操作,获取的地址并不是物理内存地址,而是线性地...
2020-03-13 22:44:37 354
原创 笔记:杂项(2)// Linux下的一些辅助工具(命令)
nm(1)功能:列出可执行文件、目标文件、静态库或动态库中的符号。可以通过nm查看文件或库中包含的函数名(即符号),并明确这些函数的实现是否在查看的文件或库中。用法:nm + 文件名/库名举例:Desktop Linraffe$ nm a.out0000000100000000 T __mh_execute_header0000000100000ed0 T _func00000001...
2020-03-11 23:24:20 163
原创 笔记:gdb调试器的基本使用方法
gdb调试器是linux下最常用的调试器之一gdb功能很强大,这里列出最基本的入门操作,若要提高调试效率,还有很多东西要学,这里不赘述使用gdb调试器调试程序步骤1)gcc -g + “源文件命名” -o “可执行文件名”:编译生成带有可调试功能的可执行文件(会比不带-g选项的普通可执行文件大)2)gdb + “可执行文件名”:使用gdb打开可执行文件进入调试gdb调试器基本命令1)l...
2020-03-11 09:30:07 163
原创 笔记:杂项(1)// ubuntu的软件源更换、vim文本替换命令
ubuntu软件源的更换使用ubuntu的默认下载源下载会很慢,把下载源改成国内的源下载速度提升非常明显,这里以阿里源为例:进入阿里源开发者社区,里面提供了丰富的源。进入ubuntu源,里面就有关于换源的详细操作:1)首先,进入/etc/apt目录,其中sources.list文件指定了软件源。为了保险起见,先将当前的软件源进行备份Desktop linraffe$:cd /etc/apt...
2020-03-11 00:06:43 685
原创 笔记:Linux环境C语言复习(5)//系统调用和标准库的错误处理函数
异常处理函数作用当我们编写一个程序,并通过了编译,但在程序运行过程中发生了错误。我们知道程序异常,系统杀死了进程,但是原因可能有很多,我们排查错误需要很大的时间开销。如果我们在编写代码时加入异常处理函数(即,错误处理函数),就可以在发生异常后很快速的定位出错点。异常处理函数相关系统全局变量errno:查看帮助手册我们可以知道,errno是一个整形系统全局变量,它的不同数值代表了一种异常状态...
2020-03-07 02:45:36 139
原创 笔记:Linux环境C语言复习(4)//静态库、动态库、动态库函数动态加载
朋友们,半夜1:20了,随手点个赞,秀发永相伴 ????静态库I)静态库相关1)对静态库的使用发生在编译过程中,当编译完成,生成可执行文件后,即便删除静态库,也不影响文件执行2)相比动态库在可执行文件执行时才加载库,由静态库编译生成的可执行文件执行效率可能会稍高一些,但是作为代价,对内存资源的消耗就相应较高3)Linux下的静态库命名规则:lib + “库名” .a(例如:lib giraf...
2020-03-04 05:27:34 249
原创 笔记:Linux环境变量
环境变量作用bash(可能不准确说shell更好)是在Linux系统启动后,最先运行的几个进程之一。在bash启动之后,会先读取配置文件~/.bashrc,对bash进程进行配置。环境变量的作用是在bash运行期间,允许用户根据自己的需要,对bash进程的配置进行修改。(理解可能有偏差,如有错误望指正。)环境变量分类 //这里的名字并不专业1)(默认)环境变量启动bash后便存在的环境...
2020-03-03 22:29:45 171
原创 笔记:Linux环境C语言复习(3)//typedef关键字、大小端
typedef关键字typedef关键字作用假如要定义一个包含学生姓名、性别、年龄、学号的学生信息结构体,我们可能会这么写:struct student{ char *name; char *sex; int age; int id;};然后我们想要创建linraffe、unicorn两个同学信息对象,我们可能会这么写:struct student linraffe = {"...
2020-03-02 23:17:29 173
原创 笔记:Linux环境C语言复习(2)//数据类型(指针、数组)
数据类型的作用假设系统规定int类型数据占内存4个字节,那么定义初始化变量“int a = 517;”,计算机实际工作如下:1)在内存中开辟4个字节的连续空间,并将517存储在该空间中2)将该空间的首地址与变量a建立映射关系(即&a表示该空间在内存上的首地址)现在要访问变量a,计算实际工作如下:1)获取与a变量建立映射关系的内存首地址(即获取&a)2)以获取的首地址(即...
2020-03-02 17:36:31 163 2
原创 笔记:Linux环境C语言复习(1)//C语言编译过程
目前对C语言感性的理解:C语言,就是一门语言,和英语、日语一样。本科时候学过谭浩强的红皮书,那是一本语法书,和中学的英文语法书没有太大的区别,规定一系列的约定俗成的规范(复数名词后要加s;定义整型变量前面要用int修饰),就是强行记忆,没有什么捷径。语法很重要,学会语法是进入这个语系世界的钥匙。但是,学会语法和学会语言是两件事情。我和刘慈欣都熟练掌握中文语法,但是他能写《三体》获得雨果奖,而我写个...
2020-02-29 17:41:35 188
原创 笔记:vim编辑器基本使用方法
vim编辑器是linux下最常用的文本编辑器之一vim有很多操作,这里列出最基本的入门操作,若要提高编辑效率,还有很多东西要学,这里不赘述vim的三种模式NORMAL模式:进入vim后不做任何操作就在NORMAL模式下,或者在任意模式下按ESC键也可进入该模式INSERT模式:在NORMAL模式下按i键,就可以进入INSERT模式,在该模式下可以进行一般的文本编辑命令模式:在NORMAL...
2020-02-23 11:41:07 193
原创 笔记:Linux文件系统 //路径
linux下一切皆文件,文件系统呈树状,在上层的文件(目录)称为父目录,父目录下可能会有一个或多个目录(文件),称为该父目录的子目录,每个子目录对应唯一确定的父目录。文件系统最顶端的文件(目录)成为根目录。路径:描述文件在文件系统中的位置路径表示:1)‘.’表示当前路径2)‘/’表示根目录3)每一级目录之间也用‘/’隔开例如:/etc/profile,表示根目录下的etc目录下的pro...
2020-02-23 10:26:12 251
原创 为什么unsigned short int c变量赋最大值加一后不等于0,很奇怪啊,求解答。
为什么unsigned short int c变量赋最大值加一后不等于0,很奇怪啊,求解答。include &amp;amp;lt;stdio.h&amp;amp;gt;include &amp;amp;lt;string.h&amp;amp;gt;include &amp;amp;lt;limits.h&amp;amp;gt;int main(){unsigned short int c =
2019-02-01 22:25:15 1019 8
netChat.zip
2020-06-30
netInfo.zip
2020-06-16
Mouse_Keyboard.zip
2020-06-12
Rolling.zip
2020-06-12
PicViewer.zip
2020-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人