今天是【重学C++】的第一讲,我们来学习下C++的内存管理。与java、golang等自带垃圾回收机制的语言不同,C++并不会自动回收内存。我们必须手动管理堆上内存分配和释放,这往往会导致内存泄漏和内存溢出等问题。而且,这些问题可能不会立即出现,而是运行一段时间后,才会暴露出现,排查也很困难。因此,了解和掌握C++中的内存管理技巧和工具是非常重要的,可以提高 …
根据 Reddit C++ 版块上的信息,C++ 20 已经正式通过委员会草案,这意味着 C++ 20 可以准备发布。“在近期 ISO C++ 委员会会议上,我们完成了 C++ 20 委员会草案,并投票决定将国际标准草案(DIS,Draft International Standard)发送出去,以进行最终批准和发布”,帖子介绍:“在程序上,DIS 可能会被 …
本文适合有 C++ 基础的朋友本文作者:HelloGitHub-AnthonyHelloGitHub 推出的《讲解开源项目》系列,本期介绍基于 C++ 的 RPC 开源框架——rest_rpc,一个让小白也可以快速(10 分钟)开发 RPC 服务的框架。项目地址:https:github.comqicosmosrest_rpcrest_rpc 是一个高性能、 …
多线程的使用,本文主要简单介绍使用多线程的几种方式,并使用几个简单的例子来介绍多线程,使用编译器为visual studio。一、AsyncFuture使用的知识点有std::async和std::future1、std::async函数原型template<class Fn, class... Args>future<typename r …
本期是C++基础语法分享的第九节,今天给大家来分享一下:(1)智能指针;(2)强制类型转换运算符;(3)运行时类型信息 (RTTI);智能指针C++ 标准库(STL)中头文件:#include <memory>C++ 98:std::auto_ptr<std::string> ps (new std::string(str));C++ …
1. 遵循代码简洁原则尽量避免冗余代码,通过模块化设计、清晰的命名和良好的结构,让代码更易于阅读和维护2. 优先使用智能指针使用 std::unique_ptr 和 std::shared_ptr 替代裸指针来管理动态内存,以减少内存泄漏风险。 #include <memory> std::unique_ptr<int> ptr = …
std::shared_ptr 是 C++ 标准库中的一个智能指针,它利用引用计数来实现共享式拥有的概念。下面为你详细介绍 std::shared_ptr、std::weak_ptr、std::bad_weak_ptr 和 std::enable_shared_from_this。std::shared_ptrstd::shared_ptr 是一种智能指针, …
一、基础必备核心1. 指针与引用(遥控器原理)指针:存储地址的变量(像电视遥控器)int tv = 100;电视机int* remote = &tv; 遥控器指向电视*remote = 200; 用遥控器调整电视引用:变量的别名(给电视贴标签)int& label = tv; 标签贴到电视上label = 300; 通过标签修改电视2. 内存管理(仓库管理员 …
在 C++ 中,有四种显式的强制类型转换操作符,它们分别用于不同的场景,提供更安全、更明确的类型转换。以下是这四种强制类型转换的详细介绍:1.static_cast用途:用于基本数据类型之间的转换,以及具有继承关系的指针或引用之间的转换。特点:在编译时进行类型检查,不具备运行时的安全检查。示例:cpp 基本数据类型转换int i = 10;double d …
一。为什么放弃在Visual Studio IDE下Coding?PC有点拉跨,启动Visual Studio加载环境较慢,PC上装了多套VS,旧版本加载速度还行,但较新的版本如Visual Studio 2019,频繁地“无法响应并等待”太捉急VSCode是一款相当优秀的编辑器,有强大的插件支持,简单说就是在其下Coding,效率起飞由于第2点描述,其他日 …