自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 虚函数工作原理

虚函数通过 VTable 和 vptr 实现动态绑定,使得 C++ 能够支持多态性。它允许程序在运行时选择正确的函数,从而提供更灵活的代码结构和设计。

2024-09-26 14:13:40 167

原创 左值和右值的区别

左值和右值的区分在 C++11 引入的移动语义和完美转发中变得尤为重要,理解它们有助于更有效地管理资源和优化性能。

2024-09-26 14:09:16 137

原创 面向对象和面向过程语言的区别

面向过程和面向对象语言各有其特点和优势,面向过程适合简单和小型程序,而面向对象则在复杂系统的开发中表现更佳,提供了更好的结构和可维护性。选择哪种范式通常取决于具体的应用需求和程序复杂度。

2024-09-26 11:51:38 200

原创 malloc的底层实现

malloc的底层实现涉及内存管理、分配算法、内存块管理及系统调用等多个方面。其效率和碎片管理策略对应用程序的性能影响很大。不同的标准库实现可能有不同的细节,但大致逻辑相似。

2024-09-26 11:48:55 76

原创 C++程序的执行过程

C++ 程序的执行过程包括编写、编译、链接、加载和执行等步骤。这一过程涉及多个工具和阶段,每个阶段对最终可执行文件的生成和运行至关重要。

2024-09-26 11:44:43 54

原创 常见的设计原则

这些设计原则提供了一种结构化的方式来设计和组织代码,有助于提高代码的可维护性、可扩展性和灵活性。遵循这些原则可以有效地管理软件复杂性,降低修改引入错误的风险。

2024-09-26 11:37:34 66

原创 友元函数和友元类

友元函数和友元类提供了一种灵活的方式来控制类的访问权限,适用于需要访问私有成员的场景。合理使用可以简化代码并提高可读性,但过度使用则可能导致封装性降低。

2024-09-26 11:30:21 114

原创 几种单例模式

选择单例模式的实现方式时,需要考虑线程安全、内存使用和实例创建时机。懒汉式适合延迟加载,但需要注意线程安全,饿汉式简单且安全但可能浪费资源。C++11 的实现方式是现代 C++ 的推荐做法,提供了线程安全和简洁性。

2024-09-26 11:20:22 180

原创 C++11引入的新特性

C++11 的这些新特性大大提高了语言的表达力、性能和安全性,为开发者提供了更强大的工具。

2024-09-26 11:10:48 160

原创 STL库中常用容器

这些容器各自有其特点,适用于不同的场景。选择合适的容器可以提高程序的效率和可读性。

2024-09-26 11:00:07 133

原创 内存泄漏的处理以及一些常见的内存管理技术

通过使用智能指针、RAII 原则、内存池技术、手动管理、内存检测工具等方法,可以有效处理和防止内存泄漏问题。这些技术有助于提高代码的安全性和可维护性。

2024-09-25 12:51:17 185

原创 构造函数不能声明为虚函数

构造函数不能声明为虚函数,因为在构造过程中对象的动态类型未确定,不能实现多态。这种设计确保了对象在初始化时的安全性和一致性。

2024-09-25 12:47:56 209

原创 动态链接和静态链接的区别,动态链接的原理

静态链接:在编译时将所有代码合并,生成较大的可执行文件。动态链接:在运行时加载库,节省内存和磁盘空间,但可能引入版本兼容性问题。

2024-09-25 12:43:43 138

原创 unordered_map的扩容过程

扩容过程是一个复杂但高效的过程,通过动态调整桶数量和重新分配元素,确保哈希表在多次插入操作后仍能保持良好的性能。

2024-09-25 12:39:38 190

原创 vector和list的底层原理以及对应的优缺点

vector:适合需要频繁随机访问和尾部操作的场景,但在中间插入和删除时性能较差。list:适合需要频繁插入和删除的场景,但不适合随机访问。

2024-09-25 12:34:22 160

原创 C++原子操作

原子操作是实现高效并发程序的重要工具,能够确保在多线程环境下的安全性和一致性。

2024-09-25 12:30:22 172

原创 虚函数和纯虚函数

虚函数:可以有实现,允许派生类重写,用于实现多态。纯虚函数:没有实现,要求派生类必须提供实现,形成抽象类。

2024-09-25 12:21:49 149

原创 重载和重写、重定义的区别

定义通常指的是在同一作用域中,重新定义一个已经存在的函数或变量。这在 C++ 中常常被认为是一个不好的做法,因为它可能导致混淆。特征重定义并不一定是函数重载或重写,而是简单地用新的实现替代原有的实现。示例void func() { /* 实现1 */ }void func() { /* 实现2 */ } // 重定义,可能导致编译错误重载:同一作用域中函数名相同但参数不同,支持多态。重写:在派生类中重新定义基类的虚函数,提供不同的实现。重定义。

2024-09-25 12:17:54 224

原创 深拷贝和浅拷贝

浅拷贝:只复制对象的基本数据和指针,多个对象共享相同的数据。深拷贝:复制对象的所有数据,包括指针指向的实际数据,确保每个对象拥有独立的副本。

2024-09-25 12:13:23 188

原创 指针和引用的区别

指针是一个变量,存储另一个变量的地址。可以重新指向其他变量。int a = 5;// 指针指向变量 a引用是一个别名,必须在声明时初始化,不能改变引用的对象。int a = 5;// 引用 a指针:灵活性高,可以指向不同的对象,能够为nullptr,适合动态内存管理。引用:提供更安全的访问方式,不能改变引用的对象,适合用作函数参数和返回值。

2024-09-25 12:10:17 157

原创 new 和 malloc 的区别及为何需要 new/delete

虽然malloc和free在 C 语言中很常用,但 C++ 引入new和delete是为了更好地支持对象的生命周期管理、类型安全和异常处理,确保程序的安全性和可维护性。因此,在 C++ 中,建议优先使用new和delete来进行动态内存管理。

2024-09-25 12:04:53 203

原创 多态的实现原理(实现方式)以及多态的优点

多态通过虚函数和动态绑定提供了一种灵活的机制,使得代码可以处理不同类型的对象而无需具体了解它们的实现。这种特性不仅增强了代码的可读性和可维护性,还提高了程序的扩展性。

2024-09-25 11:58:13 92

原创 封装、继承和多态

封装确保数据的安全性和隐私;继承实现代码的重用和扩展;多态提供了灵活性,使得相同的接口可以对应不同的实现。这三个特性共同促进了代码的组织和可维护性,是面向对象编程的核心。

2024-09-25 11:53:27 398

原创 栈区和堆区的区别

栈区和堆区各有优缺点,适用于不同的场景。了解它们的区别有助于合理选择内存分配方式,从而提高程序的效率和安全性。

2024-09-25 11:43:40 209

原创 C++ 内存管理

智能指针提供了安全、灵活的内存管理机制,避免了手动管理内存带来的复杂性和潜在问题。如果你只需要一个独占所有权的指针,使用。如果你需要共享所有权,使用。如果你需要观察一个shared_ptr但不想增加其引用计数,使用。

2024-09-25 11:38:38 699

原创 C++ 简单实现委托

前段时间在公司实习做了电子显微镜的项目,GUI部分是用C#写的,C#中的委托(delegate)用起来实在是太爽了。委托让模块之间的关联程序大大的降低,可是说几乎能做到不关联。这让有些模块的独立性、通用性和重用能力得到大大的加强。在我的毕业设计所做的程序中,人工智能模块我就是做成了一个可以让别人也能灵活使用的单独的模块。其中有一个重要功能就是接受别人的模块所传入的回调函数,在电脑计算完毕之后

2009-05-07 14:07:00 542

C++算术表达式求值(支持函数)

C++算术表达式求值(支持函数) sin cos tan asin acos atan log sqrt cos(sin(sqrt(100*sqrt(100*10^2))))*(1.0e+5)/(1.0e-5) = 8.74513e+009

2014-05-16

中国象棋机器博弈数据结构设计与搜索算法研究

中国象棋机器博弈数据结构设计与搜索算法研究.nh

2011-08-03

VC++解析PSD文件并显示图像源代码

VC++解析PSD文件并显示图像源代码 VC++解析PSD文件并显示图像源代码

2011-07-27

简单的数组封装C++代码

简单的数组封装C++代码 简单的数组封装C++代码 简单的数组封装C++代码

2011-07-14

爱读书_ 2.799_setup.part3.rar

爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar

2011-07-11

爱读书_ 2.799_setup.part2.rar

爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar

2011-07-11

爱读书_ 2.799_setup.part1.rar

爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar爱读书_ 2.799_setup.part1.rar

2011-07-11

简单C语言编译程序_只实现到中间代码

该程序是本人08年大三的时候写的,可以把一个编写有简单C语言代码(只有数值变量,表达式带有{}的if和While语句,if和while可以嵌套)的文件读入,并把代码翻译成中间代码

2011-06-28

C++ 超大整数类 及RSA加密

C++ 超大整数类 及RSA加密 功能特别强大的适用于非负整数的大整数类 并用于RSA加密解密

2011-02-25

C++大整数RSA加密

大整数 实现很多整数的运算操作 RSA加密 这个有些问题大家不用下载,我上传了一个新的

2011-02-24

网络人机对战中国象棋_需求设计实现说明文档

网络人机对战中国象棋_需求设计实现说明文档 这个软件的源代码我也已经在之前上传过了 有兴趣的可以一起下载研究

2010-12-02

三个C++网络绘图MFC程序

三个C++网络绘图MFC程序 有兴趣的可以下载看看

2010-12-02

网络对战/人机对战中国象棋源码

此源代码是本人大四毕业所写,用VC2005开发完成.分为八个功能,还有一个独立的服务器.欢迎大家学习交流.

2009-08-05

网络对战/人机对战中国象棋

本软件可以网络对战,也可以人机对战,可以点对点对战,也可以连接服务器对战,还可以要机对战。是我的毕业设计成果,欢迎大家关注,等毕业了,我把源代码也传上来。

2009-06-12

中国象棋机器博弈模块

是一个可以供大家使用的DLL库,内有详细的使用说明

2009-04-26

网络对战中国象棋VC++2005版

用VS2005编写的,想学习交流的可以给我发消息.

2008-11-20

VC6.0五子棋网络对战版

上次我发了一个用VC6.0编写的单机版的五子棋,现在我把改成了网络版的了.

2008-11-20

学生考勤系统软件详细设计说明书

自己期末的实验作业,大家可以当一个例子看看

2008-09-01

more effective c++

pdf 格式 more effective c++

2008-06-13

文件目录管理VC++源码

自己为学校的实验课写的一个程序,似了一下CMD命令方式。<br>是多级目录方式。

2008-06-07

五子棋VC++6.0

我自己写的一个程序,单机双人对下的程序,可以悔棋,下完了之后还可以复盘,就是把下棋的过程再现一次。

2008-05-30

操作系统-进程调度-源码

操作系统 进程调度 时间片轮转 优先级相结合

2008-04-28

操作系统-作业调度-源码

操作系统作业调度 三种算法 先来先服务 短作业优先 最高响应比

2008-04-28

VC++控制台汉诺塔演示程序

有兴趣的可以看看,其实也很简单的

2008-01-07

四则运算计算器

一个可以直接对表达示计算的计算器,是用VC++6.0写的.

2007-12-25

空空如也

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

TA关注的人

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