自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++中的浅拷贝/深拷贝/赋值运算符

本文介绍了C++中的拷贝机制及其实现要点。拷贝分为浅拷贝(仅复制指针,共享内存)和深拷贝(完全复制内存内容)。默认拷贝构造函数和赋值运算符执行浅拷贝,可能导致double free等问题。通过自定义拷贝构造函数(A(const A&))和赋值运算符(A& operator=(const A&))可实现深拷贝。文章强调Rule of Three原则:若实现析构函数、拷贝构造或赋值运算符中的任意一个,必须同时实现另外两个,以避免资源泄漏。对于不可拷贝的类(如管理资源的类),可用=dele

2025-11-24 21:38:56 546

原创 C++设计模式-单例模式

摘要:单例模式确保类在系统中只有一个实例,并提供全局访问点。主要适用于配置管理、日志系统、线程池/数据库连接池等需要共享资源的场景。实现方式包括:1)懒汉式(需要时才创建,需加锁保证线程安全);2)升级版懒汉式(使用call_once保证线程安全);3)饿汉式(程序启动即创建,线程安全)。典型应用如线程安全的日志系统,通过静态实例和互斥锁确保单例性和线程安全。实现时需注意构造私有化、禁用拷贝构造和赋值运算符,防止多实例创建。

2025-10-19 16:03:05 423

原创 C++回调函数以及使用方法

C++回调函数机制详解:回调函数是通过将函数地址作为参数传递,在特定时机被调用的机制。文章介绍了三种实现方式:传统函数指针(类型受限)、std::function+std::bind(推荐,支持成员函数和lambda)以及lambda表达式(可捕获变量)。典型应用场景包括异步任务通知、事件驱动和插件系统。最佳实践建议优先使用std::function、规范命名(onXxx/callbackXxx)并注意生命周期管理。文中通过下载器案例演示了进度回调的实现,展示了回调在异步编程中的实际应用价值。

2025-10-14 21:53:55 963

原创 C++中static的用法

本文介绍了C++中static关键字的四种用法:修饰局部变量保持状态、限制全局变量/函数作用域、定义类静态成员变量和静态成员函数。着重讲解了静态成员函数在工厂模式中的应用,通过Shape类的静态工厂方法create()封装对象创建逻辑,实现创建与使用的解耦。虽然工厂方法通常声明为static以无需实例化即可创建对象,但static是语言特性,工厂方法是设计模式,二者虽常结合使用但本质不同。使用static工厂方法能提升代码封装性和可维护性。

2025-10-13 15:47:42 351

原创 Google Test测试框架库的使用方法

Google Test 安装与使用指南 本文介绍了 Google Test 框架的安装和使用方法。在安装部分,详细说明了 Linux、MacOS 和 Windows 系统下的不同安装方式,包括使用包管理器和源码编译两种方法。使用部分展示了如何编写测试用例,包括 TEST 宏的基本写法、各种断言的使用方法(如相等/不等、布尔检查、字符串比较、浮点数比较和异常检查等),并比较了 EXPECT_* 和 ASSERT_* 宏的区别。最后提供了 GTest 断言的速查表,方便开发者快速查阅常用的断言方法。

2025-09-19 22:01:57 2060

原创 虚函数、纯虚函数与接口抽象

虚函数实现运行时多态,通过基类指针调用子类函数;纯虚函数定义接口规范,强制子类实现。虚函数使程序在运行时根据对象真实类型决定调用哪个函数,而非指针类型。纯虚函数(=0)使类成为抽象类,不能实例化,只能作为接口规范。通过Shape抽象类和Circle、Rectangle子类示例,展示了如何利用虚函数抽象接口,实现不同图形的绘制和面积计算功能。虚函数机制是面向对象多态性的核心实现方式。

2025-09-17 12:26:35 644

原创 Const在C++中如何使用

C++中的const用法解析:const变量不可修改;const指针分四种情况,控制指针和指向内容的可变性;const引用只读不改;成员函数加const表示不修改对象状态;const引用能延长临时对象生命周期;const对象无法移动只能拷贝。const用于保障代码安全性和表达设计意图,需合理使用避免过度限制。

2025-09-14 15:05:36 407

原创 标准CMake项目文件(CMakeLists.txt)说明

注意:以Clion为例,如果修改了CMake文件或者添加了多个add_executable,生成不同的可执行文件,一定要reload重新加载CMake文件。顶层CMakeLists.txt。src中的CMakeLists。lib中的CMakeLists。

2025-09-11 16:57:15 411

原创 c++运算符重载

全局函数:更加灵活,比如int+Number也可以支持。,就会查找是否定义了operator+来处理。5、一个极简的 2D 向量,用来演示运算符重载。其他:-> ->* , new delete。在c++中,运算符其实就是特殊名字的函数。关系运算符:==!= < > <= >=成员函数:左操作数必须是本类对象。算术运算符:+ - * / %赋值运算符:=(建议总是重载),只改变“运算时的含义”。逻辑运算符:&& ||!2、运算重载符的使用。2.1 成员函数方式。输入输出:<< >>自增自减:++ --

2025-09-09 21:23:14 412

HCIE-Security-V2.0.zip

华为HCIE-Security课件,实验手册,试题

2021-02-23

空空如也

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

TA关注的人

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