自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面向对象特性之一:多态

⑴ 多态:同一种行为,不同对象来完成会产生不同结果。⑵ 虚函数:被virtual修饰的类成员函数称为虚函数。⑶ 重写:派生类虚函数与基类虚函数的返回值类型函数名参数列表完全相同(除缺省值,this)重写有两个特例:(一) 协变:基类虚函数返回基类对象的指针或者引用,而派生类虚函数返回派生类对象的指针或者引用(二) 需要重写的函数,派生类可以不添加virtual,但是基类必须添加virtual⑷ 构成条件:① 必须通过基类的指针或者引用调用虚函数② 被调用的函数必须是虚函数。

2023-09-01 15:50:02 80

原创 C++ 面向对象特性之一:继承

有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,虽然能够解决菱形继承所带来的问题,但是。

2023-09-01 15:12:31 78

原创 C++之内存管理

C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,如:malloc申请完之后都要进行强转类型,以及C++引入构造函数和析构函数,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。⑵ 多个对象,使用new + 类型[] 和 delete[] + 指针,这是构造多个对象,以及释放多个对象。,不能是new单个对象,却用delete[] 来释放,这样的行为是未定义,不能保证一定没问题。,完成N个对象中资源的清理,再调用。

2023-08-24 22:47:45 84

原创 C++类与对象 --- 构造函数、析构函数、拷贝构造、赋值重载

详细介绍C++的四个默认成员函数

2023-08-22 22:24:53 54

原创 文件描述符

文件是进程打开,需要将文件与进程关联起来,能够进行后续写入、读等操作,因此OS会创建struct files_struct,其中有一个指针数组struct file* fd_array[] 里面保存被打开文件对应的struct file的指针,然后给进程返回被打开文件在指针数组的下标 —重定向的本质是在用户层没有感知的情况下,改变0/1/2 文件描述符所指向,使得他们不是向显示屏打印或者是从键盘中获取,而是向你指定的文件输入或者获取, 追加重定向是打开指定文件时候的策略不同(O_APPEND)。

2023-06-01 08:44:48 378

原创 Linux --- 进程控制(内含思维导图)

为WNOHANG时,父进程会处于轮询状态,通过判断waitpid返回值,为0时代表子进程未退出,则父进程会完成自己的任务,不断重复这样的动作直到返回子进程pid代表子进程退出,回收成功。他们两个区别如图所示。先介绍一下退出码,如:main函数每次最后都会return 0,这就是退出码,代表含义为执行到这里程序执行成功,且结果正常,因此我们可以通过 return 来设计程序,运行出你预期的结果,return 你觉得表示成功的数字,如0。前面两种情况是通过退出码来区分,第三种情况是通过信号来终止进程表示异常。

2023-05-09 23:19:35 169 3

原创 Linux---进程地址空间

理解进程地址空间

2023-05-03 22:59:57 61

原创 一篇文章让你彻底搞懂环境变量

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。

2023-04-24 13:04:51 3701

原创 数据结构与算法--栈

一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。遵循后进先出原则。往往说的进栈/压栈/入栈是栈的插入操作,入数据在栈顶。而出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2023-04-15 20:48:18 54

原创 【数据结构与算法】带头双向循环链表

上篇文章讲到链表结构最简单的单向不循环不双向链表,这一次来谈谈链表中结构最复杂的带头双向循环链表。虽然名字挺长的,结构也看起来比较复杂,但是实现起来还是相对简单的。

2023-04-07 23:22:17 57

原创 90天通关剑指offer---复杂链表的复制

今天讲的是剑指offer上的一道关于链表。这是一道好题目,无论是思路上,还是写代码上都有难度,值得尝试做一做。

2023-04-03 18:47:01 67

原创 C嘎嘎系列 ---- STL(SGI版本) Stack和Queue 模拟实现

这一次模拟实现Stack和Queue,Stack和Queue这两个结构比较特殊,通过适配器来实现。本章的重点是初识适配器的概念,初步了解适配器的应用场景。

2023-03-29 20:29:26 147 1

原创 C++程序设计--- STL list的模拟实现

STL List的模拟实现

2023-03-21 22:12:11 113 2

原创 C++程序设计-----STL vector模拟实现

目录前言一、成员变量二、天选之子三、成员函数3.1 获取大小3.2 修改函数四、谈谈迭代器失效问题五、总结前言这次我们来实现STL vector的模拟实现,还是与之前一样先从成员变量,再到四大天选之子,最后到有各种功能成员函数。一、成员变量因为vector的物理结构是连续的物理空间,所以Linux下的SGI版本采用依旧是原生的指针作为迭代器。在C++11中能够给成员变量赋缺省值。private: iterator _start = nullptr; iterator _finish = nu

2023-03-19 22:46:18 86

原创 C嘎嘎程序设计------STL string类的模拟实现

通过实现常用的string类的函数接口进一步了解string类,能够使我们对string类理解更深。从而更好的运用string。

2023-03-17 12:03:06 142 6

原创 LINUX进程

操作系统:进程状态

2023-03-01 13:59:42 146 2

原创 C++入门:命名空间、缺省参数、函数重载、引用、内联函数、auto、范围for

C++入门:命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for

2023-02-28 22:34:22 154

原创 扫雷具体步骤和代码 (C语言实现)

扫雷,不知道童鞋们有没有在童年时候在大屁股电脑上玩过扫雷,现在还真是怀念那时候,所以今天心血来潮敲一个扫雷。

2022-10-31 00:25:43 1079 4

原创 三子棋具体步骤和代码 (C语言实现)

三子棋按照我的自己理解去写,为了让代码清晰明了,我创建了一个game.h的头文件用来声明函数,和两个.c文件, 一个用来封装函数,另一个是运行的主文件

2022-10-16 10:03:32 655 3

原创 斐波那契数求法----迭代和递归

斐波那契数求法

2022-10-07 16:54:20 190

原创 C语言程序设计---求最大公因数

辗转相除法和试出法求最大公因数

2022-10-06 22:01:18 3667

原创 C语言|一个简单的文章让你轻松理解猜字小游戏的原理

设计C语言|猜字小游戏

2022-09-29 23:40:04 940 2

原创 c语言素数

求出N内所有素数

2022-09-27 10:57:18 508

原创 数据结构--二分查找法

在面对数据量比较大的有序数据时,要查找到目标值,只是简单的从头开始一个个找,这样需要查找N次,效率十分低下,这使得人很头疼,这时候主角二分查找法登场,我们通过二分查找法只需要查找log2(n)次,大大提高查找效率。``

2022-09-25 11:28:32 885

空空如也

空空如也

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

TA关注的人

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