C++ virtual(虚函数)
C++ virtual(虚函数) 虚函数和虚函数表(vtable)是 C++ 中实现多态性的核心机制。它们允许在运行时根据对象的实际类型调用正确的虚函数实现,从而支持动态绑定和多态性。以下是对虚函数和虚函数表的详细解释: 1. 虚函数 虚函数 是在基类中声明的函数,并且在派生类中可以被重写(override)。它的声明通过 virtual 关键字标…
C++ 多态
C++ 多态 多态(Polymorphism)是C++面向对象编程的核心特性之一,允许同一个函数、操作符或对象在不同情况下表现出不同的行为。多态的主要目标是提高代码的灵活性和可扩展性。 分类 C++的多态分为两种主要类型: 1. 静态多态(编译时多态) 静态多态是在编译时决定调用哪个函数,主要通过函数重载和运算符重载实现。 函数重载 #includ…
C++封装
C++封装(Encapsulation) 封装是C++面向对象编程的三大特性之一(封装、继承、多态)。它将数据和操作数据的函数绑定在一起,通过访问控制(访问修饰符)限制外部对数据的直接访问,从而保护数据的完整性和安全性。 基本概念 数据隐藏: 使用访问控制隐藏类的某些成员,避免外界直接操作数据。 防止非法访问或修改对象的状态。 访问控制: 使用访问…
C++继承
C++ 的继承 继承是面向对象编程的一个核心概念,C++ 提供了强大的继承机制,用于描述类之间的层次关系。通过继承,一个类可以基于已有的类创建新类,从而实现代码的复用、扩展和多态性。 1. 基本概念 基类(Base Class):被继承的类,也称为父类或超类。 派生类(Derived Class):从基类继承来的类,也称为子类。 继承的关键字:cl…
lua拷贝
lua拷贝 首先要明白lua的引用类型 在 Lua 中,以下数据类型是引用类型: 表(table):Lua 的核心数据结构。 函数(function):闭包、函数均是引用类型。 线程(thread):Lua 协程(coroutine)。 用户数据(userdata):外部数据的引用。 对于这些引用类型的变量,赋值或传参时,实际传递的是地址引用,而不…
thumbnail
inline(内联函数)
inline(内联函数) 内联函数(inline function)是C++语言中的一个特性,用于提示编译器在函数调用时将函数体直接嵌入到调用点,而不是通过常规的函数调用机制。内联函数的主要目的是为了提高程序的执行效率,特别是在小型、频繁调用的函数中。下面将详细讲解内联函数的定义、工作原理、优缺点,以及使用建议。 内联函数的定义 内联函数使用 in…
thumbnail
C++ const常量
Const(常量) const 关键字在C和C++中是一个非常有用的工具,帮助开发者编写更加健壮和安全的代码。它可以用于: 防止变量的值被意外修改。 保护指针指向的数据不被修改。 保证函数参数在函数内部不被修改。 确保类成员函数不修改对象的状态。 定义一个不可修改的变量 const int x = 10; const指针 指向常量的指针(const…
thumbnail
Unity资源加载常用
Unity异步加载常用类AsyncOperation和ResourceRequest 基本用法 AsyncOperation 通常与场景加载一起使用。以下是一些常见的用法示例: 异步加载场景 using UnityEngine; using UnityEngine.SceneManagement; using System.Collections;…
thumbnail
Codeforces Round 950 (Div. 3) E题题解
Problem - E - Codeforces E题题解 题干 问题描述 你得到一个大小为 n x m 的矩阵 a,其中包含从 1 到 n * m 的整数排列。 一个长度为 n 的整数排列是一个数组,其中包含从 1 到 n 的所有整数各一次。例如,数组 [1]、[2, 1, 3]、[5, 4, 3, 2, 1] 是排列,而数组 [1, 1]、[1…
thumbnail
Unity中的同步
帧同步和状态同步 在网络游戏开发中,帧同步和状态同步是两种常见的同步策略,用于保持多个客户端之间的游戏状态一致。它们各有优缺点,适用于不同的游戏类型和网络环境。 帧同步(Lockstep) 原理 帧同步(Lockstep)是一种将所有客户端的输入命令在同一帧执行的同步策略。每个客户端在同一帧内执行相同的命令,从而保持游戏状态一致。这通常通过以下步骤…