- 博客(51)
- 收藏
- 关注
原创 C++中的虚函数
被virtual修饰的函数叫做虚函数。为什么说虚函数是类继承中的一种函数呢?因为虚函数的作用确实主要是在类的继承中体现的(即派生类和基类)虚函数的作用就是当基类和派生类中都有一个同名字的函数。当基类指针存放派生类对象的地址时。通过该指针访问同名成员函数的时候,会出现一下两种情况:那到底是调用基类的还是调用派生类的呢?如果该函数在基类中是虚函数:则调用派生类 — 这里就体现了虚函数能让基类类和派生类的成员函数突出独特性。如果该函数在基类中不是虚函数:则调用基类。
2023-08-29 18:39:16
228
原创 Linux内核下的Makefile分析
直接执行消除 *.o *mod.c *.ko *.symvers *markers *.order *~删除操作。
2023-04-19 11:02:17
267
原创 函数 tcgetpgrp & tcsetpgrp 和 tcgetsid
【代码】函数 tcgetpgrp & tcsetpgrp 和 tcgetsid。
2023-04-18 20:06:05
360
原创 获取UNIX系统时间
这个函数获取到的信息只是从1970年1月1日的UTC时间到现在的时间间隔.也称为CPU时间.进程时间以时钟滴答计算. 每秒曾经取为50 60 或 100个时钟滴答. 时间值是存放在系统类型clock_t里面.该时间是自协调时间时间 1970年1月1日 00:00:00这个特定时间来计算累积的秒数。(称为UTC 格林尼治标准时间)当t非空时,t应该存放一个空间首地址,该空间类型应该是time_t类型 则time函数会把时间间隔存放在t指向的空间里面.时钟时间.: 墙上时钟时间,他是进程运行的时间总量。
2023-04-17 19:35:02
1753
原创 同步IO与异步IO的基本概念
一个线程发送一个IO操作请求给内核进行IO操作,不会进行等待直接继续执行工作,内核把IO操作完成后将会通过进行IO已经操作完成。支持多个线程同时发送IO请求操作!可以把他们当成系统IO和标准IO一样,数据量大的IO操作是很明显具有缓存区的标准IO快,反之就不一样了。同步IO在同一时刻只能进行一个IO操作,即文件句柄都是序列化了(原子性操作化了),一个线程进行一个IO操作,等待进入睡眠态直到IO操作完成后再继续执行后面的工作。当然如果IO操作请求很快就完成IO操作了,那么异步IO反而会比同步IO效率低。
2023-04-14 19:20:29
379
原创 函数 stat、fstat、fstatat和lstat
由下图可知,lstat和stat函数一同获取软链接文件的大小时,lstat获取的文件大小是软链接的大小,stat获取的文件大小是源文件的大小。当fd没有设置成AT_FDCWD则pathname不能用当前路径为格式。pathname以相对路径查看,fd必须设置成AF_FDCWD。
2023-04-14 15:35:46
482
原创 Linux的一个特殊的设备文件----/dev/null
dev/null文件称为 空设备文件(伪文件),也被称为位桶(黑洞)。他就像一个无底洞一样,我们一把你对他有两种操作如下:写操作:你对这个文件进行写入数据的操作,写进的数据就没了不会保存在文件中,凭空消失了读操作:你对这个文件进行读取数据的操作,这个文件会无限的NULL。
2023-03-31 19:59:23
1162
原创 C++ 命名空间
一、命名空间的基本理解## 标题命名空间的使用就是为了起到代码端拥有自己的作用域,有了不同的命名空间就有了不同的作用域,也就可以定义相同的变量,避免了变量重复定义使用的语法错误。实例代码如下所示:#include <iostream>namespace A{ int a; int b;}namespace B{ int a; int b;}int main(){ A::a = 10; B::a = 11;
2022-05-27 15:52:04
147
原创 Linux-22.04Ubuntu下,命令安装QT
Linux使用命令安装Qt极其简单cyz@ubuntu:~$ sudo apt install qtcreator qt-5default我是用22.04下载安装QT和QT库的,一开始输入命令,发现找不到qt库(qt-5default),如下图解决方法:可能是新的22.04,不再用qt5-default了,直接安装所需要的安装包即可sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
2022-05-27 10:49:46
5302
原创 Ubuntu22.04 安装 ARM平台 的 tslib
***今天心血来潮想要编译ARM平台编译QT库,再编译QT库之前,需要先安装编译tslib. ***第一步:确保ubuntu22.04有安装交叉编译工具链第二步:确保ubuntu22.04有安装make第三步:获取下载tslib的工具包—tslib-1.4.tar.bz2链接:https://pan.baidu.com/s/12ixzvWu8aJE8ViGNKdXb5g提取码:um47第四步:把tslib-1.4.tar.bz2共享到Ubuntu进行解压cyz@cyz-virtua
2022-05-26 15:58:27
746
原创 String 类(三)
一、String类的拷贝和拼接① 使用string的函数:append<拼接>和assign<拷贝>拷贝和拼接都可指定 位置和个数,代码如下:#include <iostream>#include <string.h>using namespace std;/*string类型拷贝assign和拼接append*/int main(){ string s1 = "Dante"; string s2 = "Vivan";
2021-12-30 15:54:27
401
原创 String 类(二)
***ps:该小节主要讲string类的字符串检索方法 ***一、String类中find函数① find类型函数1) find() : 找出指定子字符串在字符串中第一次出现的索引位置2) find_first_of() : 找出指定子字符串中的任意字符串在被搜索字符串中第一次出现的索引位置3)find_last_of() : 找出指定子字符串中的任意字符串在被搜索字符串中最后一次出现的索引位置3)find_first_not_of(): 找出第一个不用指定
2021-12-15 16:12:05
858
原创 C++ 行读取文件
一、简单使用C++文件流方法实现文本读取,并且简单统计最长字符串#include <iostream>#include <vector>#include <string>#include <fstream>using namespace std;typedef pair<string::size_type,int> stats;stats * Retrieve_Text();stats * Retrieve_Text(){
2021-12-14 15:20:09
3656
原创 C++ 泛型算法
一、泛型算法的基本概念所有容器类型的公共操作,组成的泛型算法集合,能够被应用到容器类型以及内置数组上。所需的头文件是:#include <algorithm>二、泛型算法中的find与内置数组以下实例实现了使用find查找并且返回数组中的元素地址:#include <iostream>#include <vector>#include <algorithm>#include <time.h>using namespace s
2021-12-13 12:02:22
928
原创 迭代器 与 顺序容器vector
一、迭代器的概念迭代器是顺序容器和关联容器的对象元素进行连续访问。操作时,需要保存容器对象的首部和尾部,进而可以连续访问对象中的元素了。迭代器内置于 顺序容器对象中的一般化方法:iteratoriterator可存放 容器对象的成员函数:begin 与 end: begin:返回一个iterator指向容器的第一个元素 end: 返回一个iterator指向容器的最后一个元素二、通过vector、list容器中的迭代器方法,遍历容器对象中的元素① vector 容器
2021-11-24 11:32:59
865
原创 C++抽象容器类型 一 ( vector 、list)
一、容器一开始理解容器的时候,可以把容器看成库,都是提供一系列特定功能的。二、常见的容器STL标准模板库的分类: 顺序容器: vector: 向量容器 list :列表容器 deque : 双端队列容器 关联容器:查询一个元素是否存在,并且有效的获取该元素数据。 map(映射) set(集合) 哈希容器: u
2021-11-11 22:22:08
1534
原创 C++ 类中的 构造函数、拷贝构造函数、析构函数
一、构造函数① 概念 构造函数就是和类名一样,而且是没有返回值的函数。如下所示: class demo_class { public: demo_class();//构造函数 如果不指定属性,则默认为私有的 };如果类里面的构造函数demo_class是私有的,那样就会编译器就会报错。如下图所示:② 特点① 如果自己没有定义构造函数,则编译器会使用默认构造函数。② 默认的构造函数是一个空的函数。③ 构造函数可以重载,只需要通过形参的不同辨别即可。③ 作用
2021-10-27 11:08:56
819
原创 pair 类型
一、pair的理解可以把pair理解成C中的sprintf,存放链接把两种类型数据,访问第一种使用first,访问第二种数据使用second。二、pair的使用基本使用: #include <iostream> #include <utility> using namespace std; int main() { pair <string,string> student(小明,三班); cout<<s
2021-10-26 11:26:55
616
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人