- 博客(34)
- 收藏
- 关注
原创 vi编辑器快速使用手册
摘要:vi编辑器是Unix/Linux系统经典的文本编辑工具,具有命令模式、插入模式和行命令模式三种工作状态。命令模式支持删除、替换、拷贝等操作;插入模式用于文本输入;行命令模式执行保存、搜索等高级命令。其特色包括高效的快捷键操作(如dd删除行、yy复制)、灵活的光标移动(gg/G跳转行首尾)以及强大的文本处理能力(查找替换、多文件编辑)。虽然学习曲线较陡,但熟练掌握后能显著提升文本编辑效率,是系统管理员和开发者的必备工具。
2025-06-27 21:31:54
797
原创 Ubuntu常用指令手册
本文是一份Ubuntu Linux系统使用手册,详细整理了常用命令及操作指南。主要内容包括:Linux系统简介、Ubuntu发行版特性、文件系统结构解析;基础操作命令如ls、cd、mkdir等;文件权限管理(chmod/chown);文件操作指令(cp/mv/rm);文本处理工具(cat/grep/wc);用户与进程管理;网络配置命令;定时任务设置(crontab);以及echo、find等实用命令的进阶用法。手册采用分类编排方式,每个命令均包含功能说明、语法格式、常用选项和典型示例,特别适合作为日常运维的
2025-06-23 01:37:47
1813
原创 一道题学会纯虚函数
纯虚函数是一种没有具体实现的虚函数,它的作用是强制派生类必须实现该函数。定义格式为:virtual 返回值类型 函数名(参数列表) const = 0;// =0 表示纯虚函数包含纯虚函数的类称为抽象基类(Abstract Base Class),这种类不能实例化对象(无法创建具体实例),只能作为基类被继承。虚继承是解决菱形继承问题(也叫钻石继承问题)的技术。当一个派生类间接多次继承同一个基类时,会导致基类的成员被多次复制,引发二义性(不知道访问哪一份成员)。虚继承的语法是在继承时加virtual。
2025-09-11 17:11:08
948
原创 一道题学会拷贝构造函数
本文介绍了一个学生类的实现,重点解决了指针成员浅拷贝的问题。通过定义Student类,包含姓名(指针类型)和年龄属性,以及读书和跑步方法。在stu.h中声明类,在stu.cpp中实现方法,使用初始化列表完成构造。关键点在于自定义拷贝构造函数实现深拷贝:为姓名重新分配内存而非复制指针地址。测试中先创建张三对象,再通过拷贝构造创建李四,并修改李四姓名,验证了深拷贝的正确性。最后分析了默认拷贝构造函数的浅拷贝问题及深拷贝的解决方案。
2025-09-08 16:57:10
369
原创 C++学习笔记之异常处理
该笔记围绕 C++ 异常处理展开,先明确异常处理任务,指出程序错误分语法错误与运行错误,异常处理针对运行时差错及例外情况,可避免程序异常终止。接着介绍异常处理方法,由检查(try)、抛出(throw)、捕捉(catch)三部分组成,通过三角形面积计算示例展示用法,还说明 try - catch 结构语法规则,如 try 块需包含待检查语句、可多个 catch 块等。随后讲解函数声明中异常指定,包括异常规范语法、用法、作用及注意事项,提及 C++11 后推荐用 noexcept。
2025-08-28 17:50:21
720
原创 C++学习笔记之输入输出流
本文是C++输入输出流学习笔记,主要涵盖标准I/O、文件I/O和字符串I/O三大内容模块。文章首先介绍了C++流的基本概念和类型安全性特点,详细解析了标准输入输出流(cin/cout)和文件流(ifstream/ofstream)的使用方法,包括格式化控制、文件读写操作等。在文件操作部分,重点讲解了ASCII文件和二进制文件的处理技术,并通过多个实例演示了数据的存储与读取。最后介绍了字符串流的应用场景和实现方式,包括传统与现代字符串流操作的对比。全文系统性地梳理了C++流类库的体系结构和使用方法
2025-08-28 02:39:01
999
原创 C++学习笔记之多态性
摘要: 本文系统介绍了C++中的多态性,包括静态多态(函数重载、运算符重载)和动态多态(虚函数机制)。动态多态通过虚函数实现,允许基类指针调用派生类的同名函数,核心内容包括:虚函数的作用、静态/动态关联的区别、虚析构函数的必要性,以及纯虚函数与抽象类的定义与应用。通过几何图形(点、圆、圆柱体)的类层次案例,演示了多态的实现方式,强调抽象类通过纯虚函数强制派生类实现统一接口,支持运行时多态。综合实例展示了如何利用抽象类指针管理不同派生类对象,体现“一个接口,多种行为”的面向对象设计思想。
2025-08-18 01:43:56
816
原创 C++学习笔记(类的继承)
本文详细介绍了C++中类的继承机制,包括继承与派生的基本概念、派生类的声明方式及其构成,重点分析了不同继承方式(公有、私有、保护)下派生类成员的访问属性。通过具体示例阐述了派生类构造函数和析构函数的实现方法,特别说明了多重继承可能引发的二义性问题及虚基类的解决方案。此外,还探讨了基类与派生类之间的转换规则、继承与组合的区别及适用场景,并强调了继承在软件开发中实现代码复用、层次化设计和多态性的重要意义。全文系统性地讲解了继承这一面向对象编程核心特性的实现原理和应用方法。
2025-08-17 04:29:01
676
原创 git项目管理工具教程
本文介绍了Git这一分布式版本控制工具的基本使用流程,包括从建立本地库、远程库到日常版本控制和分支管理的操作指南。文章首先讲解如何初始化本地仓库并关联远程仓库(如Gitee),详细说明了git init、git remote add等命令的使用。然后介绍了Git核心工作流程:通过git add提交到暂存区,git commit提交到本地仓库,git push推送到远程仓库。在分支管理部分,重点讲解了分支创建、切换、合并和删除等操作,并分析了GitFlow工作流模型。最后简要介绍了在Visual Studio
2025-08-13 00:19:09
536
原创 Selenium教程(Python 网页自动化测试脚本)
摘要: Selenium是Python网页自动化测试的核心库,支持多浏览器操作。本文详细介绍了Selenium的环境配置、基础操作(浏览器控制、元素定位和交互)、高级功能(多线程、定时任务)以及实战案例。主要内容包括:浏览器驱动安装、8种元素定位方法、窗口切换、多线程执行、定时任务设置,并提供了百度/B站自动化搜索、本地HTML按钮点击等综合案例。通过隐性等待、显式等待等机制确保脚本稳定性,适合自动化测试、数据采集等场景。
2025-08-04 23:53:44
2719
原创 C++ 重载
C++重载机制详解摘要 C++重载包含运算符重载和函数重载两种形式,通过同名不同参的方式增强代码灵活性和可读性。 1. 运算符重载 目的:使自定义类型支持内置运算符,实现语法一致性(如复数类使用+运算) 方法:通过operator关键字定义成员函数或友元函数 规则:不可创建新运算符;不改变运算符优先级和结合性;至少一个操作数为类对象 典型应用:流运算符(<<、>>)、算术运算符、比较运算符等 实现方式: 成员函数:单目运算符常用(如++obj) 友元函数:双目运算符常用(如cout&
2025-07-31 01:20:28
903
原创 C++ 类与对象(全)
本文系统介绍了C++面向对象编程的核心概念和技术要点,主要包括以下内容: 类与对象的关系:详细阐述了类的定义、对象实例化、封装特性、内存分配机制及典型应用场景。 对象指针技术:涵盖指向对象的指针、指向对象成员的指针(包括数据成员和成员函数)以及this指针的原理与应用。 数据保护机制:讲解了常对象、常成员函数、常指针等多种const用法,并介绍了mutable关键字突破const限制的特殊用途。 动态内存管理:深入分析new/delete操作符的使用方法,包括对象动态创建释放、对象数组处理以及现代C++智能
2025-07-30 03:51:35
1184
原创 C++学习笔记(类与对象part2)
本文系统介绍了C++中类与对象的高级特性,包括静态成员、友元机制和类模板三大核心内容。首先详细讲解了静态数据成员和静态成员函数的概念与使用方法,强调其实现类内数据共享的优势;其次深入剖析友元机制,包含友元函数、友元类和友元成员函数的应用场景与注意事项;最后通过案例演示类模板的定义与实例化过程,展现其实现代码复用的价值。全文通过丰富示例阐明这些特性如何平衡封装性与灵活性,为C++面向对象编程提供重要技术支撑。
2025-07-30 03:50:01
1009
原创 C++学习笔记(类与对象part1)
本文摘要: C++面向对象编程核心概念解析:类与对象、指针、内存管理及保护机制 类与对象基础 类是抽象蓝图,对象是具体实例 包含封装、继承、多态三大特性 成员变量存储独立,成员函数共享 对象指针与this指针 对象指针访问成员:ptr->member或(*ptr).member this指针隐含于成员函数,指向当前对象 用于区分同名变量、实现链式调用等场景 数据保护机制 const常对象、常成员函数、常数据成员 指向对象的常指针与指向常对象的指针 常引用作为安全高效的对象传递方式 动态内存管理 new
2025-07-28 00:28:16
1153
原创 C++学习笔记(构造函数与析构函数)
构造函数与析构函数在C++面向对象编程中起着关键作用。构造函数用于对象初始化,包括无参构造(固定初值)、带参构造(动态赋值)、参数初始化表(简洁初始化)、带默认参数构造及重载构造等多种形式。复制构造函数通过对象引用实现对象复制,需注意浅拷贝与深拷贝问题。转换构造函数支持类型转换,可将其他类型数据转为类对象。析构函数在对象生命周期结束时自动调用,用于资源清理,调用顺序与构造函数相反。掌握这些特殊成员函数的使用方法,能够有效管理对象生命周期,确保资源正确分配与释放,是C++类设计的重要基础。
2025-07-27 08:57:16
761
原创 C++学习笔记(十:类与对象基础)
本文是一系列C++学习笔记的摘要,主要内容包括:基础语法(编译阶段、程序结构、数据类型、运算符等);核心概念(函数、指针、内存管理、const关键字等);面向对象编程(类与对象、封装、继承、多态等特性);以及进阶内容(类型转换、typedef、运算符重载等)。笔记通过代码示例详细讲解了面向过程与面向对象的区别,类的定义与使用,成员函数与this指针的运作机制,以及封装特性的实现方式。特别强调了C++中类与结构体的区别,对象内存分配原理,以及如何通过访问控制实现信息隐藏。适合C++初学者系统学习核心语法和面向
2025-07-25 22:52:02
1508
原创 C++学习笔记(九:结构体)
本文是C++学习笔记系列,重点讲解了结构体和联合体的使用。结构体部分详细介绍了定义方式、变量声明、初始化、成员访问、内存对齐、指针操作,以及作为函数参数的三种传递方式(值传递、指针传递和引用传递)。同时介绍了结构体数组和成员函数的用法。联合体部分阐述了其定义方法、内存共享特性、匿名联合体,并通过综合案例展示了如何实现支持多种类型的变体类型。全文通过丰富代码示例,帮助读者掌握这两种复合数据类型的核心概念和实际应用场景。
2025-07-25 00:46:22
642
原创 C++学习笔记(八:函数与变量)
这篇C++学习笔记系统性地整理了C++编程的核心知识点,主要内容包括: 函数进阶:详细讲解了内联函数(性能优化、可读性提升)、函数重载(同名不同参)、缺省参数(参数默认值)和递归调用(包括尾递归优化) 变量进阶:深入分析变量作用域(6种类型)、存储类型(auto/register/static/extern)和链接属性(external/internal/none) 关键概念:内存构成、指针基础、const关键字、类型转换等核心知识点 编程基础:程序结构、数据类型、运算符、流程控制等基础内容 笔记采用对比表
2025-07-24 11:56:47
686
原创 C++学习笔记(七:指针)
这篇C++学习笔记系统整理了指针相关的核心知识,主要包含以下内容:1. 内存构成详解(代码区、栈区、堆区等5大分区) 2. 指针核心概念:定义、运算符(&/*)、指针运算规则 3. 指针与数组/字符串的关联操作 4. 指针作为函数参数和返回值的应用 5. 高级指针类型:指针数组、指向指针的指针 6. 引用机制及其与指针的区别 7. 典型应用场景如数据交换、动态内存管理等 笔记通过大量代码示例(如指针遍历数组、选择排序实现等)配合内存布局图示,深入解析指针的底层原理和使用技巧,特别强调指针运算、多维数
2025-07-24 03:46:01
781
原创 C++学习笔记(六:数组)
本文整理了C++数组相关的核心知识点,主要内容包括:1)一维数组的定义、初始化、越界风险及常见算法实现(反转、二分查找、冒泡排序等5种排序算法);2)二维数组的内存结构、初始化方式和遍历方法;3)字符数组的特殊性、输入输出处理及常见字符串函数;4)C++字符串类string的基本用法。文章通过大量代码示例详细演示了数组操作技巧,并强调了数组越界等常见问题的危险性。
2025-07-21 18:44:05
792
原创 C++学习笔记之数组、指针和字符串
数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。定义方式:类型说明符 数组名[常量表达式]...;数组名的构成方法与一般变量名相同int a[10];表示a为整型数组,有10个元素:a[0]…a[9]例如:表示a为整型二维数组,其中第一维有5个下标(0~4),第二维有3个下标(0~2),数组的元素个数为15,可以用于存放5行3列的整型数据表格。①数组定义的基本语法在大多数编程语言中,数组的定义需要明确数据类型和初始大小。// 定义一个包含5个整数的数组。
2025-07-08 19:32:53
912
原创 C++学习笔记(五)
流程控制是编程中的核心概念,主要包括顺序结构、条件分支和循环结构。顺序结构是代码的默认执行方式;条件分支通过if判断和switch-case实现多路选择;循环结构则包含for、while等实现重复操作。三种循环各有特点:for适合已知次数的循环,while适合条件控制,do-while确保至少执行一次。break和continue可中断循环,循环嵌套能处理复杂逻辑。goto语句虽灵活但风险极高,需避免"死亡螺旋"等五种禁忌场景:跨作用域跳转、破坏类构造/析构、函数间跳转和循环内异常跳转。
2025-07-02 01:27:28
891
原创 Liunx网络实战
bind9配置文件被保存在/etc/bind/目录下。named.confBind主配置文件;:全局选项;:配置zone文件;db.root:根服务器指向文件;db.locallocalhost正向区文件,用于将名字localhost转换为本地回送IP地址;db.127localhost反向区文件,用于将本地回送IP地址转换为名字localhost。是Apache2Timeout:设置服务器在断定请求失败前等待的秒数。默认值300;KeepAlive:设置是否启用HTTP持久链接,On。
2025-06-28 16:48:14
323
原创 Ubuntu安装BIND服务软件教程
摘要:本文介绍了在Ubuntu系统上安装和配置BIND9 DNS服务器的步骤。首先通过sudo apt update更新软件包列表,然后安装BIND9并验证服务状态。文章说明了如何配置防火墙开放DNS端口,修改主配置文件设置转发器,以及使用named-checkconf测试配置语法。最后介绍了重启BIND服务和验证DNS解析的方法。整个过程涵盖了从安装到测试的完整配置流程,适合需要搭建本地DNS服务器的用户参考。
2025-06-28 15:43:02
472
原创 C++学习笔记(四)
这篇C++学习笔记涵盖了编程基础到进阶知识的系统性内容,主要分为三大部分:基础篇包括编译过程、命名空间、程序结构和数据类型;进阶篇深入讲解了内存管理、指针、const修饰符、枚举和类型转换;高级篇涉及预处理指令、运算符重载和底层操作。笔记特别强调了类型转换的隐式/显式区别、指针与内存操作技巧、位运算的实用案例,以及sizeof运算符的编译时特性。通过对比表格和代码示例,清晰呈现了C风格与C++风格类型转换的关键差异,以及逻辑运算符与位运算符的本质区别。内容编排由浅入深,既包含基础语法要点,也覆盖了函数指针、
2025-06-27 20:43:00
1156
3
原创 C++学习笔记(三)
本文整理了C++编程基础的核心知识点,主要内容包括:1. C++内存管理:详细解析代码区、静态数据区、栈区、堆区的功能特点,介绍内存地址概念及变量存储原理;2. 指针基础:讲解指针的定义与使用、解引用操作、指针类型的内存占用等核心概念;3. const关键字:分析常量变量、常量指针、指针常量等不同用法,区分顶层与底层const;4. 枚举类型:对比传统枚举与C++11强类型枚举(enum class),说明枚举的定义、赋值和使用方法;5. 编程基础:涵盖变量作用域、数据类型、二进制相关概念等基础知识。文章通
2025-06-26 14:35:11
1122
1
原创 C++学习笔记(二)
sizeof是 C 和 C++ 中的一种运算符,用于计算数据类型或对象在内存中所占的字节数。它是一个编译时运算符,其结果在编译时就已经确定,不需要运行时计算。sizeof 的基本用法sizeof可以作用于数据类型或表达式。int a;// 返回 int 类型的字节数// 返回变量 a 的字节数sizeof 的常见用途sizeof常用于动态内存分配、数组操作和结构体对齐等场景。// 分配 10 个 int 的内存空间sizeof 的特殊情况对于数组,sizeof。
2025-06-26 08:00:00
1014
原创 C++学习笔记(一)
这篇C++学习笔记主要记录了作者在Ubuntu环境下学习C++的基础知识。文章首先介绍了C++的特点及其与C语言的关系,着重说明了封装、继承和多态三大面向对象特性。然后详细解析了C++编译的四个阶段:预处理、编译、汇编和链接,并给出了相关编译命令。接着通过"Hello World"案例分析了常见问题,如头文件区别、命名空间使用等。笔记还重点讲解了命名空间的定义、使用方式及标准命名空间std,最后总结了C++程序的基本结构特点。内容涵盖编译原理、基础语法和实际应用,为复习巩固提供了系统参考
2025-06-25 08:40:39
783
原创 Win11打开gpedit.msc教程
在Windows系统中使用cmd输入"gpedit.msc"时若提示找不到文件,可通过创建批处理文件解决。方法是新建一个gpedit.bat文件,包含特定命令代码,以管理员身份运行即可安装缺失的组策略组件。完成后即可正常打开本地组策略编辑器。该方案适用于Windows家庭版等缺失该功能的系统版本。
2025-06-22 13:01:58
1096
1
原创 网络超时、源地址失效?一招解决 Ubuntu 软件安装时的镜像连接难题
Ubuntu 24.04更换软件源的简明教程:由于24.04改用DEB822格式,源配置文件路径改为/etc/apt/sources.list.d/ubuntu.sources。更换方法:1)备份原文件;2)修改文件中的URI为阿里云(mirrors.aliyun.com)或清华源;3)保存后执行sudo apt update更新。注意事项:清华源需从镜像站复制DEB822格式代码替换原内容。两种方法任选其一即可解决网络连接问题。
2025-06-20 10:38:46
1103
原创 基于QT的智慧交通管理系统(Day4)
接上篇本文用于记录学期期末实训内容,尽可能做到保姆级别的详细步骤,跟着做准能成第一次写博客,请多担待声明:我也只是个学习一般的学生,这是记录课上老师讲的内容,我现在只能说这么做能行,但我还不清楚为什么这样做,还在努力学习中。
2025-01-09 17:31:07
1226
2
原创 基于QT的智慧交通管理系统(Day3)
接上篇本文用于记录学期期末实训内容,尽可能做到保姆级别的详细步骤,跟着做准能成第一次写博客,请多担待声明:我也只是个学习一般的学生,这是记录课上老师讲的内容,我现在只能说这么做能行,但我还不清楚为什么这样做,还在努力学习中。
2025-01-08 23:13:54
1088
原创 基于QT的智慧交通管理系统(Day2)
接上回声明:我也只是个学习一般的学生,这是记录课上老师讲的内容,我现在只能说这么做能行,但我还不清楚为什么这样做,还在努力学习中。
2025-01-07 21:35:15
890
1
原创 基于QT的智慧交通管理系统(Day1)
本文用于记录学期期末实训内容,智慧交通系统设计,硬件使用Qt仿真。软件使用Qt做一个界面—界面设计、开发,信号和槽,事件,网络编程。界面会显示车辆的运行信息,并且可以远程控制车辆的状态。尽可能做到保姆级别的详细步骤
2025-01-07 01:58:43
1383
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅