Effective C++_第二篇

Effective C++_第二篇

bingliaolong C++ 1年前 3 0

12 复制对象的所有部分 概述 在C++中,实现拷贝构造函数和赋值运算符时,确保复制对象的所有成员变量是至关重要的 忽略某些成员变量可能会导致不完整或错误的对象状态,进而引发难以追踪的错误 为什么要复制对象的所有部分 保持对象的一致性: 所有成员变量都应该在拷贝时保持一致,以确保...

Effective C++_第三篇

Effective C++_第三篇

bingliaolong C++ 1年前 2 0

23 优先选择非成员非友元函数,而不是成员函数 概述 优先考虑使用非成员非友元函数,而不是成员函数 这种做法有助于保持类的接口简洁,提高代码的可读性和可维护性 为什么优先选择非成员非友元函数 增强封装性: 非成员函数不需要访问类的私有或受保护成员,因此可以减少类的内部实现细节暴露...

Effective C++_第四篇

Effective C++_第四篇

bingliaolong C++ 1年前 3 0

34 区分接口继承和实现继承 概述 在C++的面向对象编程中,继承可以用于两种目的:接口继承和实现继承 理解并区分这两种继承方式有助于设计更清晰、可维护和灵活的类结构 接口继承 子类继承基类的接口,但可以重新定义(覆盖)基类的方法 接口继承通常用于定义类的行为约定,使得不同的子类...

C++_成员访问权限

C++_成员访问权限 7

bingliaolong C++ 1年前 10 0

关于继承 概念定义 用户 把包含这个基类或派生类的第三方类或函数暂时称为用户 基类定义如图: public继承 含义 基类的 public 成员在派生类中仍然是 public 的 基类的 protected 成员在派生类中仍然是 protected 的 基类的 private 成...

C++14_第二篇

C++14_第二篇

bingliaolong C++ 1年前 1 0

变量模板 C++14引入了变量模板,使得可以为变量定义模板 make_unique C++14引入了std::make_unique,提供了一种创建std::unique_ptr的简便方式 std::make_unique 是一个模板函数,用于创建 std::unique_ptr...

C++_函数模板、类模板、特化、模板元编程、SFINAE、概念

C++_函数模板、类模板、特化、模板元编程、SFINAE、概念

bingliaolong C++ 1年前 19 0

模板 概述 C++模板是一个强大的编程工具,使得可以编写通用的、类型安全的代码 模板主要用于函数和类的泛型编程,允许你定义通用算法和数据结构,然后在需要时使用具体类型进行实例化 使用场景 通用算法: 模板允许你编写通用算法,如排序、搜索等,而无需针对每种类型重复实现 容器类: 标...

C++_友元、联合体、内联、static、指针、深浅拷贝

C++_友元、联合体、内联、static、指针、深浅拷贝

bingliaolong C++ 1年前 4 0

友元类 适用情况 紧密协作: 当两个类需要紧密协作,且需要共享内部实现细节时 例如,操作类需要访问数据类的内部数据来实现复杂的功能 封装复杂操作: 当某些复杂操作不能或不应成为数据类的成员函数时 通过友元类可以将这些操作封装在独立的类中,从而简化数据类的设计 提高性能: 在某些情...

Skia总结概述

Skia总结概述

bingliaolong Skia 2年前 42 0

核心结构简述 画布 canvas 画布是Skia绘图操作的核心 它提供了一个虚拟的绘图空间,你可以在上面绘制形状、文本和图像 画笔 paint 画笔用于定义绘图操作的样式和颜色 可以设置笔刷的颜色、透明度、填充模式等 路径 path 路径是一系列的线段和曲线,可以用来绘制复杂的图...

C++并发编程 _ 无锁数据结构

C++并发编程 _ 无锁数据结构

bingliaolong C++ 2年前 9 0

自旋锁 用ATOMIC_FLAG_INIT进行了flag的初始化 它确保了flag的初始状态是清除(或说“未设置”)状态 lock调用了test_and_set方法来试图获取锁 test_and_set会检查flag的当前值:如果flag是清除状态,则设置它并返回false;如果...

包管理器:设计与实现

包管理器:设计与实现

bingliaolong C++ 2年前 15 0

背景 管理器用于管理多个任务 接入了管理器的模块,会根据自己要做的事情,来生成不同的任务 而这些任务的生成,是由接入了管理器的模块,通过一些重要的数据(比如目标数据包的编号,以及目标所在的位置,要求管理器执行的任务类型),来让管理器生成的不同的任务,并添加到任务队列中 目前的设计...

扫一扫二维码分享