自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++中的多态

摘要:C++多态的实现基于虚函数机制,需要满足两个必要条件:(1)通过父类指针或引用调用函数;(2)在派生类中重写父类虚函数(函数名、参数列表和返回类型必须相同)。虚函数通过虚函数表实现动态绑定,每个含有虚函数的类会生成虚函数表,对象中包含指向该表的指针。特别地,基类析构函数应当声明为虚函数,以确保正确释放派生类资源。虚函数重写允许协变返回类型,且父类虚函数特性会自动继承给子类。正确使用虚函数机制是保证多态行为的关键。

2025-11-08 16:14:38 855

原创 C++中的继承

本文探讨了C++中子类和父类的赋值兼容规则及相关特性。主要内容包括:1)对象赋值的切割现象与指针/引用赋值的多态基础;2)继承函数的调用机制、重定义行为和功能扩展方法;3)作用域规则中的隐藏和删除机制;4)派生类默认成员函数(构造、析构、拷贝等)的实现原理;5)通过final关键字设计不可继承类的方法。重点阐述了派生类对象初始化顺序、成员隐藏规则以及多态实现的基础机制,为C++面向对象编程提供了关键技术参考。

2025-11-03 18:09:08 949

原创 基础IO-文件系统初步

本文摘要: 本文系统介绍了文件操作相关知识,包括文件基本概念、C语言文件接口和系统调用。文件由内容+属性组成,操作文件必须通过路径唯一标识。C语言提供fopen()等库函数进行文件读写,需注意不同模式(r/w/a等)的行为差异。底层系统调用open()使用标志位组合(O_RDONLY|O_CREAT等)和权限掩码机制(umask)控制文件访问。文件写入通过write()实现,操作系统将其视为字节流处理。最后通过示例代码演示了文件读写操作的具体实现方式。

2025-10-22 21:22:50 697

原创 进程的控制

本文主要介绍了进程创建与控制的相关概念和技术。 进程创建:通过 fork() 系统调用创建子进程,父子进程共享代码但拥有不同的返回值(父进程返回子进程 PID,子进程返回 0),从而实现不同逻辑分支。 进程退出:进程退出可返回状态码(exit())或直接终止(_exit()),区别在于是否刷新缓冲区。父进程需通过 wait() 或 waitpid() 回收子进程资源,避免僵尸进程。 进程等待: wait()和 waitpid() 提供更灵活的等待方式以及进程退出与程序装入的联系

2025-10-12 21:06:25 664

原创 进程初了解

本文介绍了操作系统中的进程管理机制。主要内容包括:1) CPU通过内存与外设交互以提高效率,程序运行必须加载到内存;2) 进程通过PCB(进程控制块)进行管理,操作系统将进程管理转化为对链表的操作;3) 进程状态包括运行、阻塞、挂起、僵尸和孤儿状态,其中僵尸进程会导致内存泄漏;4) 进程优先级通过PRI和NI值调整;5) 进程切换涉及上下文保护和恢复;6) 虚拟地址空间通过写时拷贝机制实现进程隔离,保证安全性。文章还解释了进程加载过程,说明程序内部使用虚拟地址而非物理地址。

2025-10-10 19:59:55 565

原创 STL六大组件-适配器篇

这篇文章实现了C++中的三种容器适配器:stack、queue和priority_queue。stack和queue通过模板类实现,支持vector/list等容器作为底层结构,提供了push/pop/top等基本操作。priority_queue基于堆结构实现,默认大根堆,可通过仿函数改为小根堆,包含向上/向下调整算法来维护堆结构。文中还介绍了堆的特性:大根堆的根是最大值,小根堆的根是最小值,适用于排序和Top K问题。这些适配器都是通过复用现有容器实现的,体现了STL的设计思想。

2025-10-10 12:40:32 355

原创 STL六大组件-容器篇

本文介绍了C++中stl中容器类的实现,重点讲解了深浅拷贝的区别及其实现方式。文章通过URL和网站的比喻形象地说明了浅拷贝(复制指针)和深拷贝(复制数据)的区别。代码部分展示了三种容的基本实现,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载、容量操作(reserve/resize)以及字符串修改操作(push_back/append/insert/erase)。实现中特别关注了内存管理问题,如防止内存泄漏、正确处理字符串终止符'\0'等,解释了_size(有效字符数)和_capacity的区别

2025-10-10 11:56:21 664

原创 网络初认识

TCP/IP协议栈是网络通信的核心框架,分为数据链路层(ARP协议)、网络层(IP/ICMP)、传输层(TCP/UDP)和应用层。数据传输时通过封装添加各层头部信息,接收时通过分用解析。DNS实现域名到IP的转换,查询过程涉及递归器、根服务器、TLD服务器和权威服务器。Socket作为系统调用接口,使应用程序能访问协议栈功能,实现数据传输和控制。该体系结构清晰划分各层职责,确保网络通信的可靠性和效率。

2025-10-08 21:32:50 746

原创 RISC-V环境搭建

由于是Windows系统,所以选择使用VMWare虚拟机来构造实验环境,最初尝试使用Centos8系统,但是由于Centos8停止维护,导致某些软件无法正常使用,所以采取Ubuntun22.04,从官网下载镜像,有Dekstop和Server两个版本,建议选择Dekstop,因为可能会涉及科学上网,所以Server版本不太容易操作。

2025-06-12 20:34:12 322

原创 模板和内存管理

C++模板与内存管理摘要 本文介绍了C++模板编程和内存管理相关知识。模板包括函数模板和类模板,通过泛型编程实现代码复用,编译器在预处理阶段实例化模板。类模板演示了vector的实现细节。引用传参可减少拷贝并修改实参,引用返回值可修改返回对象。 内存管理部分讲解了变量生命周期、静态/全局变量区别、操作系统内存管理机制。详细对比了malloc/free与new/delete的区别:new/delete会调用构造/析构函数,是操作符而非函数。介绍了operator new/delete和定位new的用法。最后指

2025-06-12 20:29:08 240

原创 vector

string与 vector区别,string更贴合字符串的操作,单项信息,vector存储的种类更多vector插入数据如何实现的?为什么是2倍和1.5倍,增加的多少是一种选择,从空间资源浪费程度上上合理选择vector是有一定缺陷的,要付出代价的v[4] 终止程序v.at(4)抛异常函数模板:[fast,last)左闭右开push_back,insert,resize,reserve等可能都会导致迭代器的失效memxx,按字节拷贝处理list和vector是相辅相成的。

2025-06-12 20:21:40 875

原创 CPP篇:类和对象

是一种在中允许的特性。C++是如何支持函数重载的,为什么C语言不支持c++改变函数名修饰规则,编译后加上参数而C语言只有函数名,C 语言采用的是,编译器仅仅通过来确定调用哪个函数预处理:头文件展开。宏替换,条件编译,去掉注释编译:检查语法,生成汇编代码汇编:把汇编代码转成二进制机器码链接:将两个目标文件连接在一起引用:类型+&+参数 赋别名取地址:& + 参数。

2025-05-27 21:11:53 582

原创 GNU Make基础篇

本文介绍了GNU Make的基本概念和makefile的编写规则。makefile用于定义编译和链接的依赖关系,通过规则指定目标文件、依赖文件和生成命令。文章详细讲解了makefile的框架、示例、工作方式、书写规则、通配符使用、文件搜寻、伪目标、多目标、静态模式以及自动生成依赖性的方法。通过这些内容,读者可以掌握如何编写和使用makefile来管理项目的编译过程。

2025-05-19 21:26:17 77

原创 CPP篇:类和对象

类和对象基础概念总结 本文介绍了C++中类和对象的核心概念: 类成员存储机制:对象只存储成员变量,成员函数存放在公共代码段以节省空间 this指针:隐含参数,指向当前对象,用于成员函数访问成员变量 构造函数:对象初始化时自动调用,可重载,包括全缺省和无参构造函数 析构函数:对象生命周期结束时自动调用,用于资源清理 拷贝构造函数:用已有对象初始化新对象,需注意引用传参避免无限递归 运算符重载:扩展运算符功能,须遵循特定规则

2024-12-03 21:33:15 934

原创 哈希思想的应用

​哈希思想的核心是key值不变,value值为key值出现次数。

2024-11-12 19:27:27 357

原创 项目报告:基于OpenCV的人脸识别技术 (1)

OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,在BSD许可下发布,支持学术和商业用途。其主要特性包括:

2024-11-10 20:09:38 1558

原创 Markdown

Markdown的更改通过查找Markdown语法,指示文本中的内容的格式发生变化。接下来让我们一起去看看Markdown语法的使用吧

2024-09-26 19:29:02 1414

空空如也

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

TA关注的人

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