Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
C++进阶 智能指针
本篇博客简介 介绍C 中的智能指针 智能指针 为什么会存在智能指针 内存泄露 内存泄漏定义 内存泄漏的危害 如何检测内存泄漏 如何避免内存泄漏 智能指针的使用及其原理 RAII 设计一个智能指针 C 官方的智能指针 定制删除器 智能指针总结
C进阶
c
开发语言
四、C++语言进阶:Boost入门
4 Boost入门 4 1 简介 Boost库是一个可移植 提供源代码的C 库 作为标准库的后备 是C 标准化进程的开发引擎之一 是为C 语言标准库提供扩展的一些C 程序库的总称 4 2 使用 4 2 1 lamdba表达式 lambda库
C进阶
c
Linux
开发语言
【C++11】 线程库的使用
文章目录 1 线程库的基本使用 1 1 thread 1 2 this thread 1 3 线程函数参数 2 mutex 2 1 mutex的基本使用 2 2 mutex系列锁 2 3 lock guard与unique lock 3 原
C进阶
c
开发语言
线程库的使用
C11
C++的编程规范
C 是一种功能强大的编程语言 具有广泛的应用领域 编写高质量 可维护的C 代码需要遵循一定的编程规范 目录 命名规范 头文件和包含 缩进和空格 注释 函数和类 错误处理 内存管理 代码风格 命名规范 使用有意义且易于理解的变量 函数和类名
C进阶
c
开发语言
五、C++语言进阶:智能指针
5 智能指针 指针的危害 指针未初始化 野指针 内存泄漏 智能指针的出现就是为了解决上面的问题 智能指针基于这样的事实得以发挥作用 定义在栈中的智能指针 当超出其作用域时 会自动调用它的析构函数 从而可以释放其关联的内存资源 5 1 分类
C进阶
c
c语言
Linux
C++进阶--对象指针
对象指针定义形式 类名 对象指针名 例 Point a 5 10 Point ptr ptr a 通过指针访问对象成员 对象指针名 gt 成员名 例 ptr gt getx 就相当于 ptr getx this指针 隐含于类的每一个非静态成
C进阶
c
指针
C++的四种强制转换
1 static cast 基本等价于隐式转换的一种类型转换运算符 以前是编译器自动隐式转换 static cast可使用于需要明确隐式转换的地方 c 中用static cast用来表示明确的转换 可以用于低风险的转换 整型和浮点型 字符与
C进阶
c
第三章 C++之面向对象
C 基础进阶系列文章 目录 第一章 C 之函数 第二章 C 之引用实现游戏对话框显示 第三章 C 之面向对象 第二章 C 之面向对象 C 基础进阶系列文章 前言 一 什么是面向对象 二 抽象与类 1 C 中的类 2 类的声明 3 创建第一个
C进阶
c
开发语言
后端
C++的模板特例化template<>
C 的模板特例化是指当我们定义了一个通用的模板类或模板函数时 如果特定输入参数类型或值需要进行不同的处理 我们可以为这些特定情况提供单独的实现 这就是模板特例化 下面我们将详细介绍C 的模板特例化 假设我们有以下的一个模板类 templat
C进阶
c
开发语言
【C++ 进阶】继承
一 继承的定义格式 基类又叫父类 派生类又叫子类 二 继承方式 继承方式分为三种 1 public继承 2 protected继承 3 private继承 基类成员与继承方式的关系共有9种 见下表 虽然说是有9种 但其实最常用的还是红框里的
C进阶
c
开发语言
继承
【C++11】 列表初始化 auto 范围for 新增关键字 新增容器
文章目录 1 列表初始化 2 auto 范围for 3 新增关键字 3 1 decltype 3 2 default 3 3 delete 3 4 final与override 4 总结 1 列表初始化 由c语言的规则我们知道 一般只有数组
C进阶
c
开发语言
算法
【C++进阶】二叉搜索树递归与非递归的模拟实现(附源码)
一 什么是二叉搜索树 二叉搜索树又称二叉排序树 它或者是一棵空树 或者是具有以下性质的二叉树 根据二叉搜索树的性质 它的中序遍历结果就是一个升序列 二 二叉搜索树的模拟实现 节点 Node 在实现二叉搜索树之前 要先定义一个节点 成员变量包
C进阶
算法
二叉搜索树
c
三、C++语言进阶:动态库与静态库之类篇
3 动态库与静态库之类篇 3 1 素材 文件 test h pragma once class Test public Test Test void Func int i test cpp include
C进阶
c
开发语言
C++的noexcept
在C 中 noexcept是一个异常说明符 用于告知编译器一个函数是否会抛出异常 使用noexcept可以提供编译器有关函数异常处理的信息 从而优化代码 noexcept有两种形式 noexcept和noexcept expression
C进阶
c
开发语言
#pragma预处理指令
pragma是C和C 编译器提供的一种预处理指令 preprocessor directive 用于控制编译器的行为或指示特定的编译器选项 它以 pragma开头 后面跟着不同的命令或参数 pragma指令在源代码被编译之前由预处理器进行处
C进阶
开发语言
c
c语言
C++11实用技术(四)for循环该怎么写
普通用法 在C 遍历stl容器的方法通常是 include
C进阶
c
开发语言
C++11的半同步半异步线程池
C 11的半同步半异步线程池 简介 同步队列 Take函数 Add函数 Stop函数 SyncQueue完整代码 线程池 主函数测试 简介 半同步半异步线程池用的比较多 实现也比较简单 其中同步层包括同步服务层和排队层 指的是将接收的任务排
C进阶
线程池
c
Java
开发语言
C++的volatile
在C 中 编译器为了提高代码的执行效率 常常会对变量进行反向优化 比如将变量缓存在寄存器中 这样可以减少对内存的访问次数 提高访问速度 然而 在某些情况下 我们希望确保每次访问变量时都能从内存中读取最新值 而不是使用缓存中的旧值 volat
C进阶
c
Java
JVM
C++的智能指针unique_ptr、shared_ptr和weak_ptr
C 的智能指针是一种特殊的指针类型 它能够自动管理内存资源 避免常见的内存泄漏和多次释放等问题 C 11引入了三种主要的智能指针 unique ptr shared ptr和weak ptr 目录 unique ptr shared ptr
C进阶
c
开发语言
c++指针
C 指针部分 1 引用 reference 指针部分 1 引用 reference 为对象起另外一个名字 引用即别名 定义 int value 100 refValue 指向value 是value的另一个名字 int refValue v
C进阶
STM32
物联网
c
1
2
»