- 前言在软件开发的广阔天地中,C++凭借其强大的性能、灵活性以及对底层硬件的直接控制能力,长期以来一直是系统级编程、游戏开发、高性能计算等领域的重要工具。然而,掌握C++并不只是学习语法那么简单,深入理解其设计理念、最佳实践以及现代化特性,才能真正发挥这门语言的强大潜力。本文旨在深入浅出地介绍C++编程中的十大实用技巧,从内存管理到性能优化,从代码复用到异常处理,旨在帮助开发者编写出既高效又... 前言在软件开发的广阔天地中,C++凭借其强大的性能、灵活性以及对底层硬件的直接控制能力,长期以来一直是系统级编程、游戏开发、高性能计算等领域的重要工具。然而,掌握C++并不只是学习语法那么简单,深入理解其设计理念、最佳实践以及现代化特性,才能真正发挥这门语言的强大潜力。本文旨在深入浅出地介绍C++编程中的十大实用技巧,从内存管理到性能优化,从代码复用到异常处理,旨在帮助开发者编写出既高效又...
- 本文是对UE官方教程:https://www.bilibili.com/video/BV1eU4y1c7XL的重现,原教程中通过构造函数实现非运行时执行脚本,并通过UE的样条线组件辅助创建路径网格体。该功能最终实现的效果如下:如果需要使用SplineMesh做法的连续网格绘制,可以看这篇文章:https://blog.csdn.net/grayrail/article/details/133... 本文是对UE官方教程:https://www.bilibili.com/video/BV1eU4y1c7XL的重现,原教程中通过构造函数实现非运行时执行脚本,并通过UE的样条线组件辅助创建路径网格体。该功能最终实现的效果如下:如果需要使用SplineMesh做法的连续网格绘制,可以看这篇文章:https://blog.csdn.net/grayrail/article/details/133...
- C++ list-map链表与映射表的简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。list 链表链表是由节点之间通过指针连接而成的链式结构存储结构体,对于链表,C++标准库中已经提供了封装好的链表了。require:#include <list> //1.包含头文件using namespace std; //2.打开标准命名空间定义链表,并在首... C++ list-map链表与映射表的简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。list 链表链表是由节点之间通过指针连接而成的链式结构存储结构体,对于链表,C++标准库中已经提供了封装好的链表了。require:#include <list> //1.包含头文件using namespace std; //2.打开标准命名空间定义链表,并在首...
- 我们在平时开发中,少不了编写一些逻辑去控制相机,例如俯视角镜头与各个特写镜头的过渡切换,因此了解一些PlayerCameraManager是有必要的。PlayerCameraManager是UE自带的相机管理组件,本身比较简单,一般需要自行扩展。本文就来简单讲解一下。1.PlayerCameraManager执行流程执行流程如下图所示:游戏启动后通过GameMode找到PlayerContr... 我们在平时开发中,少不了编写一些逻辑去控制相机,例如俯视角镜头与各个特写镜头的过渡切换,因此了解一些PlayerCameraManager是有必要的。PlayerCameraManager是UE自带的相机管理组件,本身比较简单,一般需要自行扩展。本文就来简单讲解一下。1.PlayerCameraManager执行流程执行流程如下图所示:游戏启动后通过GameMode找到PlayerContr...
- 我们平时需要围绕fbx写一些小工具,虽说使用ascii格式的fbx可以直接进行字符串解析,并且网上也有一些基于ascii解析的开源库,但在制作一些通用的工具时,使用fbx sdk进行编写肯定是最好的。1.下载fbx sdk和cmake要用cmake生成visual studio文件才能打开工程,不知道有没有人卡在这一步,下面给出下载链接。fbx sdk下载地址:https://www.aut... 我们平时需要围绕fbx写一些小工具,虽说使用ascii格式的fbx可以直接进行字符串解析,并且网上也有一些基于ascii解析的开源库,但在制作一些通用的工具时,使用fbx sdk进行编写肯定是最好的。1.下载fbx sdk和cmake要用cmake生成visual studio文件才能打开工程,不知道有没有人卡在这一步,下面给出下载链接。fbx sdk下载地址:https://www.aut...
- 我们在UE中经常要对配置数据进行编辑,用好UE自己的DataTable自然对日常使用有所帮助。 我们在UE中经常要对配置数据进行编辑,用好UE自己的DataTable自然对日常使用有所帮助。
- 想掌握一门编程语言,第一步就是需要熟悉基本的环境,然后就是最重要的语法知识。C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。• 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。• • 类 - 类可以定义为描述对象行为/状态的模板/蓝图。• • 方法 -... 想掌握一门编程语言,第一步就是需要熟悉基本的环境,然后就是最重要的语法知识。C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。• 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。• • 类 - 类可以定义为描述对象行为/状态的模板/蓝图。• • 方法 -...
- 这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升代码质量,或者查找关键文档和资源,AI 作为编程助手都能让你事半功倍。今天为大家推荐一款适配了 Viusal Studio(本文使用),VS Code(本文使用),JetBrain... 这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升代码质量,或者查找关键文档和资源,AI 作为编程助手都能让你事半功倍。今天为大家推荐一款适配了 Viusal Studio(本文使用),VS Code(本文使用),JetBrain...
- 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承。构造函数不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成为派生类的构造函数,当然更不能成为普通的成员函数。在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数完成,但是大部分基类都有 private 属性的成员变量,它们在派生类中无法访问,更... 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承。构造函数不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成为派生类的构造函数,当然更不能成为普通的成员函数。在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数完成,但是大部分基类都有 private 属性的成员变量,它们在派生类中无法访问,更...
- 在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为: 抛出(Throw)--> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: throw exceptionData; exceptionData 是“异常数据”的意思 在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为: 抛出(Throw)--> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: throw exceptionData; exceptionData 是“异常数据”的意思
- 我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstream 的类对象可以调用 getline() 成员方法。 当文件流对象调用 getline() 方法时,该方法的功能就变成了从指定文件中读取一行字符串。 该方法有以下 2 种语法格式: istream & getline( 我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstream 的类对象可以调用 getline() 成员方法。 当文件流对象调用 getline() 方法时,该方法的功能就变成了从指定文件中读取一行字符串。 该方法有以下 2 种语法格式: istream & getline(
- 作者|王小瑞 AutoMQ 联合创始人 & CEO云计算通过资源池化实现单位资源成本更优,使企业能够将 IDC 建设、基础软件研发和运维等工作外包给云厂商,从而更专注于业务创新。资源池不仅包括服务器,还包括人才。云厂商集聚了优秀工程师,通过云服务为众多企业提供专业服务,让专业的事交给最专业的人。云计算发展这么多年,弹性是云计算从业者最关注的技术能力之一,但是真正落实到具体的案例上,很少有客... 作者|王小瑞 AutoMQ 联合创始人 & CEO云计算通过资源池化实现单位资源成本更优,使企业能够将 IDC 建设、基础软件研发和运维等工作外包给云厂商,从而更专注于业务创新。资源池不仅包括服务器,还包括人才。云厂商集聚了优秀工程师,通过云服务为众多企业提供专业服务,让专业的事交给最专业的人。云计算发展这么多年,弹性是云计算从业者最关注的技术能力之一,但是真正落实到具体的案例上,很少有客...
- 在GAS系统中对属性进行修改需要用到GE(Gameplay Effect),而这又涉及到AttributeSet这样的概念。 AttributeSet用于描述角色的属性集合,如攻击力、血量、防御力等,与GAS系统整合度较高,本文就来讲一讲AttributeSet的使用。 在GAS系统中对属性进行修改需要用到GE(Gameplay Effect),而这又涉及到AttributeSet这样的概念。 AttributeSet用于描述角色的属性集合,如攻击力、血量、防御力等,与GAS系统整合度较高,本文就来讲一讲AttributeSet的使用。
- 作为一位C++博主,我深知异常处理机制在编写健壮、可靠的C++代码过程中扮演的关键角色。本文将从博主的视角出发,深入剖析C++异常处理的原理、最佳实践,以及应对常见问题的方法,辅以代码示例,旨在帮助读者快速理解并熟练运用这一重要特性。一、C++异常处理机制概述异常抛出(throw)使用关键字throw抛出一个异常对象。异常对象可以是任何类型,但通常建议使用自定义异常类或标准库提供的异常类(如... 作为一位C++博主,我深知异常处理机制在编写健壮、可靠的C++代码过程中扮演的关键角色。本文将从博主的视角出发,深入剖析C++异常处理的原理、最佳实践,以及应对常见问题的方法,辅以代码示例,旨在帮助读者快速理解并熟练运用这一重要特性。一、C++异常处理机制概述异常抛出(throw)使用关键字throw抛出一个异常对象。异常对象可以是任何类型,但通常建议使用自定义异常类或标准库提供的异常类(如...
- 身为一名C++博主,我深知模板元编程(TMP)是C++语言的一大特色与利器,它允许我们在编译时进行计算与逻辑推理,极大地提升了代码的灵活性与性能。本文将从博主的视角,引导读者快速理解C++模板元编程的原理,掌握实用技巧,并通过实战案例解析常见问题,旨在帮助大家快速上手并运用这一强大技术。一、C++模板元编程原理浅析模板与模板参数模板是C++中的一种泛型编程机制,允许定义可重用的代码骨架,接受... 身为一名C++博主,我深知模板元编程(TMP)是C++语言的一大特色与利器,它允许我们在编译时进行计算与逻辑推理,极大地提升了代码的灵活性与性能。本文将从博主的视角,引导读者快速理解C++模板元编程的原理,掌握实用技巧,并通过实战案例解析常见问题,旨在帮助大家快速上手并运用这一强大技术。一、C++模板元编程原理浅析模板与模板参数模板是C++中的一种泛型编程机制,允许定义可重用的代码骨架,接受...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签