avatar
文章
33
标签
60
分类
0
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者
frostfishc
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者

frostfishc

C++的auto与decltype
发表于2026-02-04
C++ 的 auto 与 decltype 详解auto 关键字什么是 autoauto 是 C++11 引入的关键字,用于自动类型推导,让编译器根据初始化表达式的类型来推断变量的类型。使用 auto 可以简化代码,减少类型名称的重复,提高代码的可维护性。 auto 的原理auto 的类型推导是在编译时进行的,编译器会根据初始化表达式的类型来推断 auto 声明的变量的类型。这意味着: auto 变量必须在声明时初始化 编译器会在编译时确定 auto 变量的实际类型 运行时没有任何性能开销 auto 的用法基本用法12345// 基本类型推导auto i = 42; // i 的类型是 intauto d = 3.14; // d 的类型是 doubleauto s = "hello"; // s 的类型是 const char*auto b = true; // b 的类型是 bool 与复合类型结合123456789// 与指针结合auto* p = &i; // p...
C++虚函数与纯虚函数
发表于2026-02-04
什么是虚函数虚函数是 C++ 中实现多态的核心机制,它允许在基类中声明一个函数,然后在派生类中重写(override)这个函数,使得通过基类指针或引用调用该函数时,会根据实际指向的对象类型来调用相应的派生类实现。 虚函数的定义在 C++ 中,通过在函数声明前添加 virtual 关键字来定义虚函数: 1234567class Base {public: // 虚函数 virtual void show() { std::cout << "Base::show()" << std::endl; }}; 什么是纯虚函数纯虚函数是一种特殊的虚函数,它在基类中只声明函数签名,不提供实现,而是要求派生类必须提供实现。包含纯虚函数的类被称为抽象类,不能直接实例化。 纯虚函数的定义在 C++ 中,通过在虚函数声明的末尾添加 = 0 来定义纯虚函数: 12345class Base {public: // 纯虚函数 virtual void show() =...
SpringBoot内置工具类
发表于2026-01-31
Spring Boot 3 内置工具类详解什么是 Spring Boot 内置工具类Spring Boot 3 提供了许多内置的工具类,这些工具类封装了常见的操作,简化了开发过程,提高了代码的可读性和可维护性。这些工具类涵盖了字符串处理、集合操作、时间日期处理、反射、Web 操作等多个方面。 字符串工具类1. StringUtils应用场景:字符串的判空、修剪、分割、替换等操作 示例代码: 123456789101112131415161718192021222324252627282930313233343536import org.springframework.util.StringUtils;public class StringUtilsDemo { public static void main(String[] args) { // 判空操作 String str1 = null; String str2 = ""; String str3 = " &q...
Unity--Vector类
发表于2026-01-30
在Unity中,Vector类是一系列用于表示和操作向量的结构体,是游戏开发中不可或缺的数学工具。Vector类包括Vector2(二维向量)、Vector3(三维向量)和Vector4(四维向量),它们用于处理位置、方向、速度、力等概念。本文将详细介绍Vector类的各个类型、属性、方法、使用场景,并提供丰富的示例代码。 Vector 类概述Vector类是Unity数学库的核心部分,用于表示多维空间中的点或方向。它们是值类型(struct),具有高效的性能。Vector类支持向量运算,如加法、减法、点积、叉积等。 Vector2:表示二维向量,常用于2D游戏、UI坐标、纹理坐标等。 Vector3:表示三维向量,最常用,用于3D空间中的位置、方向、速度等。 Vector4:表示四维向量,常用于齐次坐标、颜色(RGBA)、矩阵运算等。 Vector2 类详解Vector2用于二维空间,包含x和y两个分量。 Vector2 的属性 x, y:向量的分量。 magnitude:向量长度(模)。 normalized:单位向量。 sqrMagnitude:向量长度的平方(计算更快...
Unity--Transform类
发表于2026-01-30
在Unity3D中,Transform 类是游戏对象(GameObject)的一个核心组件,它负责管理对象的空间变换信息。几乎每个游戏对象都包含一个Transform组件,因为它定义了对象在3D空间中的位置、旋转和缩放。本文将详细介绍Transform类的作用、影响的属性、在脚本中的调用方式以及如何修改其字段,并提供示例代码。 Transform 类的作用Transform类是Unity中用于表示和操作游戏对象空间属性的基础类。它允许开发者控制对象的: 位置(Position):对象在世界坐标系中的坐标。 旋转(Rotation):对象的朝向,以欧拉角或四元数表示。 缩放(Scale):对象的尺寸变化。 Transform不仅影响对象本身,还会影响其子对象,形成一个层次结构(Hierarchy)。父对象的变换会传递给子对象,这使得构建复杂的对象关系(如角色模型的骨骼系统)成为可能。此外,Transform还提供了一些实用方法,如移动、旋转和查找子对象等。 Transform 能影响到对象的什么属性Transform直接影响对象的以下属性: 位置(Position):决定对象...
Unity--MonoBehaviour生命周期
发表于2026-01-30
在Unity中,MonoBehaviour 是所有脚本组件的基类,它定义了一系列生命周期方法,这些方法在脚本的生命周期中按特定顺序自动调用。理解这些生命周期方法对于编写高效、正确的Unity脚本至关重要。本文将详细介绍MonoBehaviour的生命周期函数,包括每个函数的作用、触发时机以及相似函数之间的区别。 MonoBehaviour 生命周期概述MonoBehaviour的生命周期从脚本实例创建开始,到对象销毁结束。生命周期方法按以下顺序执行(某些方法可能在特定条件下不调用): Awake() OnEnable() Start() FixedUpdate() (如果启用) Update() (如果启用) LateUpdate() (如果启用) OnDisable() OnDestroy() 此外,还有一些其他方法如 OnApplicationQuit() 等,但本文重点介绍核心生命周期方法。 详细介绍每个生命周期函数1. Awake()作用:Awake() 方法用于初始化脚本。它在脚本实例被创建后立即调用,用于设置脚本的初始状态、获取组件引用或进行一次性初始化。 触发...
设计模式——适配器模式
发表于2026-01-24
适配器模式(Adapter Pattern)详解什么是适配器模式适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端期望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式解决的问题适配器模式主要解决以下问题: 接口不兼容:当两个类的接口不兼容时,无法直接使用 复用现有代码:当需要使用一个已有的类,但它的接口不符合需求时 系统集成:当需要集成不同系统的组件时,它们的接口可能不同 渐进式重构:当需要逐步替换旧系统的组件时,可以使用适配器作为过渡 减少修改:当修改现有代码风险较大时,可以使用适配器来适配新的接口 适配器模式的好处 兼容性:使得接口不兼容的类可以一起工作 复用性:可以复用现有的类,而不需要修改它们 可维护性:将适配逻辑集中在适配器中,易于维护 灵活性:可以在不修改现有代码的情况下,适配新的接口 符合设计原则:遵循开闭原则,对扩展开放,对修改关闭 适配器模式的结构适配器模式包含以下几个角色: 目标接口(Target):客户端期望的接口 适配者(Adaptee):需要被适配的类 适配器(Adapter):将适配者的接...
设计模式——备忘录模式
发表于2026-01-24
备忘录模式(Memento Pattern)详解什么是备忘录模式备忘录模式是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样,以后就可以将该对象恢复到原先保存的状态。 备忘录模式解决的问题备忘录模式主要解决以下问题: 状态保存与恢复:需要保存对象在某一时刻的状态,以便在将来的某个时候恢复到该状态 封装性保护:在保存和恢复状态的同时,不破坏对象的封装性 状态管理:避免将对象的状态暴露给其他对象 撤销操作:实现撤销(Undo)和重做(Redo)功能 历史记录:记录对象的历史状态,以便回溯 备忘录模式的好处 状态封装:将对象的状态封装在备忘录中,不暴露给其他对象 状态管理:集中管理对象的状态,避免状态散落在代码各处 撤销/重做:轻松实现撤销和重做功能 简化代码:将状态保存和恢复的逻辑与业务逻辑分离 符合设计原则:遵循单一职责原则和封装原则 备忘录模式的结构备忘录模式包含以下几个角色: 原发器(Originator):创建一个备忘录,记录当前状态;使用备忘录恢复状态 备忘录(Memento):存储原发器的内部状态...
Java 类加载器
发表于2026-01-23
Java 类加载器详解什么是类加载器类加载器(ClassLoader)是 Java 虚拟机(JVM)的重要组成部分,它负责将 Java 类的字节码加载到内存中,并转换为 JVM 可以识别的 Class 对象。 类加载器的作用 加载类:将类的字节码从磁盘、网络或其他来源加载到内存中 链接类:验证字节码的有效性,准备类的静态变量,解析符号引用 初始化类:执行静态初始化块,初始化静态变量 命名空间管理:每个类加载器都有自己的命名空间,相同名称的类在不同的类加载器中是不同的 类加载的过程类加载的过程包括以下几个步骤: 加载(Loading):通过类的全限定名找到类的字节码,将其加载到内存中 链接(Linking): 验证(Verification):验证字节码的有效性 准备(Preparation):为静态变量分配内存并设置默认值 解析(Resolution):将符号引用转换为直接引用 初始化(Initialization):执行静态初始化块,初始化静态变量 Java 内置的类加载器Java 中有三种类加载器: 引导类加载器(Bootstrap ClassLoader): ...
设计模式——状态模式
发表于2026-01-23
状态模式(State Pattern)详解什么是状态模式状态模式是一种行为型设计模式,它允许一个对象在其内部状态改变时改变它的行为。状态模式将状态的行为封装在对应的状态类中,使得状态的转换更加清晰和可维护。 状态模式解决的问题状态模式主要解决以下问题: 消除状态判断:避免使用大量的 if-else 或 switch-case 语句来处理不同状态的行为 状态转换管理:将状态转换的逻辑集中管理,避免状态转换分散在代码各处 状态行为封装:将每个状态的行为封装在对应的状态类中,职责单一 状态的动态切换:允许在运行时动态地切换对象的状态 代码复用:通过状态类复用不同状态的行为 状态模式的好处 代码清晰:消除了复杂的条件判断,代码结构清晰 可维护性:每个状态的行为都在自己的类中,易于维护 可扩展性:可以通过添加新的状态类来扩展功能 状态转换明确:状态转换的逻辑更加明确和集中 符合设计原则:遵循开闭原则和单一职责原则 状态模式的结构状态模式包含以下几个角色: 状态接口(State):定义所有状态的公共接口 具体状态(Concrete State):实现状态接口的具体状态类 上下文(Co...
12…4
avatar
frostfish22
文章
33
标签
60
分类
0
Follow Me
公告
This is my Blog
最新文章
C++的auto与decltype2026-02-04
C++虚函数与纯虚函数2026-02-04
SpringBoot内置工具类2026-01-31
Unity--Vector类2026-01-30
Unity--Transform类2026-01-30
标签
开放封闭原则 并发编程 标准库 方法引用 单一职责原则 函数指针 Python 纯虚函数 Unity 性能 默认方法 auto SpringBoot, Java, 注解 操作系统 回调函数 协程 多线程 Docker Dockerfile 虚函数 数据结构 面向对象 Spring Boot Java 8 里氏替换原则 Redis 泛型 JVM 算法 接口隔离原则 设计模式 JavaScript 容器 Optional STL 容器化 编程范式 日期时间API Lambda表达式 .NET
归档
  • 二月 2026 2
  • 一月 2026 20
  • 九月 2025 11
网站信息
文章数目 :
33
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By frostfish22框架 Hexo 7.3.0|主题 Butterfly 5.4.3