文章 2024-06-25 来自:开发者社区

C/C++内存管理(2):`new`和`delete`的实现原理

new和delete操作自定义类型 class Stack { public: Stack(int capacity = 3) :_top(0) , _capacity(capacity) { cout << "Stack(int capac...

C/C++内存管理(2):`new`和`delete`的实现原理
文章 2024-05-01 来自:开发者社区

【C++】一文深入浅出带你参透库中的几种 [ 智能指针 ]及其背后实现原理(代码&图示)

前言 大家好吖,欢迎来到 YY 滴C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 主要内容含: 一.前言:智能指针出现解决内存泄漏问题 通俗语言介绍: ...

【C++】一文深入浅出带你参透库中的几种 [ 智能指针 ]及其背后实现原理(代码&图示)
文章 2024-04-29 来自:开发者社区

屏幕监控软件开发指南:C++实现原理解析

在当今数字化时代,屏幕监控软件成为了企业管理和个人隐私保护的重要工具。本文将深入探讨如何使用C++语言实现屏幕监控软件,并解析其实现原理。我们将通过多个代码示例来说明其工作方式,最后将介绍如何将监控到的数据自动提交到网站。 1. 界面捕获 屏幕监控软件的核心功能之一是捕获用户界面的内容。这可以通过Windows API中的GDI(图形设备接口)来实现。以下是一个简单的C++代码示...

文章 2024-01-16 来自:开发者社区

C/C++原子操作与atomic CAS底层实现原理

原子操作 在c++中标准库也提供了原子操作的模板类,在头文件#include< atomic>中 定义 计算机执行的最小单位就是指令,即CPU一次只能执行一条指令。 假定有两个操作A 和B,如果从执行A 的线程来看,当另一个线程执行B 时,要么将B 全部执行完,要么完全不执行B,那么A 和B 对彼此来说是原子的。 理想很丰满,现实很骨感.一句c语言"i++"的操...

C/C++原子操作与atomic CAS底层实现原理
文章 2024-01-16 来自:开发者社区

c++ std::lock与std::scoped_lock底层实现原理源码剖析

std::lock用于同时获取多把锁(两把及两把以上) std::scoped_lock定义于c++ 17标准,是std::lock的RAII封装类 以下代码纯来自msvc实现 std::scoped_lock原型 在构造函数中调用std::lock,在析构函数中unlock class _NODISCARD_LOCK scoped_lock { // class ...

c++ std::lock与std::scoped_lock底层实现原理源码剖析
文章 2023-11-17 来自:开发者社区

【C++】deque的实现原理简单介绍

一、deque的原理介绍deque(双端队列):是一种双开口的" 连续 "空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高,不太容易造成内存碎片。其实deque并不是真正连续的空间,而是由一段段连续的小空间拼接而成的,实际deque类似于一个动态的二维数组,其底层结构如下图所....

【C++】deque的实现原理简单介绍
文章 2023-11-10 来自:开发者社区

C++ 多态实现原理

一、静态多态函数重载,编译器确定1.函数重载允许在同一作用域中声明多个功能类似的同名函数这些函数的参数列表,参数个数或者参数类型或者参数顺序不一样注意: 不能通过返回值类型来区别重载2.原理函数名修饰编程过程预编译:把头文件当中的函数声明拷贝到源文件,避免编译过程中的语法分析找不到函数定义编译:语法分析,同时进行符链接号汇总 (函数名)汇编:生成函数名到函数地址的映射,方便之后通过函数名找到函数....

文章 2023-11-10 来自:开发者社区

C++ list底层实现原理

一句话:list底层实现一个双向循环链表一、list底层实现一个双向循环链表二、类构成class list : protected_List_base_list_base.lsit_impl.list_node_M_storage存储具体值_M_next指向下一个结点_M_prev指向上一个结点三、构造函数不管怎么构造,初始都会构建一个空结点空节点用来表示整个双向循环链表四、迭代器++往下移动指....

文章 2023-11-10 来自:开发者社区

C++ vector底层实现原理

底层实现了一个动态数组一、类构成class vector:protected_Vector_baseprotected继承:基类的public在子类中将变成protected;其他权限不变_Vector_base:(结构体)_M_start 容器开始的位置_M_finish容器结束的位置_M_end_of_storage 动态内存最后一个元素的下一个位置二、构造函数无参构造:没有申请动态内存;性....

文章 2023-07-10 来自:开发者社区

【C++多态】 --- 多态实现原理简析

1. 多态分类多态分为两类静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名动态多态: 派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址2. 动态多态的满足条件1. 有继承关系2. 子类重写父类中的虚函数动态多态使用条件父类指针或引用指向子类对象3. 多态实现的前提赋值兼容规则是指在....

【C++多态】 --- 多态实现原理简析

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注