UE5 C+、C++、C# 构造方法区别示例

server/2024/12/14 16:34:01/

我们对比一下UE C++、C++ 、C#的构造方法:

1. UE4 C++例子:

// 声明和构造合并在一起static ConstructorHelpers::FObjectFinder<UTexture2D> CrosshairTexObj(TEXT("/Game/Path"));// 使用加载的资源UTexture2D* Texture = CrosshairTexObj.Object;

2.C#等效写法:

// 构造函数声明public class TextureFinder<T>{public T Object { get; private set; }public TextureFinder(string path){// 加载逻辑Object = LoadAsset<T>(path);}}// 使用方式static TextureFinder<Texture2D> crosshairTexObj = new TextureFinder<Texture2D>("/Game/Path");Texture2D texture = crosshairTexObj.Object;

3. 基本构造函数对比:

// C++class MyClass {
public:                        // 公共访问修饰符MyClass() {}              // 默认构造函数,无参数MyClass(int x) : value(x) {} // 带参数构造函数,使用初始化列表
private:                      // 私有访问修饰符int value;               // 私有成员变量
};// 使用MyClass obj1;           // 调用默认构造函数MyClass obj2(10);      // 调用带参数构造函数

// C#

public class MyClass 
{private int value;public MyClass() {} // 默认构造函数public MyClass(int x) // 带参数构造函数{ value = x;}
}// 使用MyClass obj1 = new MyClass();    // 调用默认构造函数MyClass obj2 = new MyClass(10);  // 调用带参数构造函数

C++的构造方法解析: 

MyClass(int x) : value(x) {}|      |    |    ||      |    |    └─ 参数x的值|      |    └─ 将要初始化的成员变量|      └─ 构造函数参数└─ 构造函数名(与类名相同)

主要区别:

  • C++不需要new关键字创建对象
  • C++构造函数可以使用初始化列表(:value(x))
  • C#必须使用new创建对象
  • C++中可以在声明时直接调用构造函数
  • C#中通常需要分开声明和构造

http://www.ppmy.cn/server/150135.html

相关文章

掌握 MySQL 事务:ACID、隔离级别详解

一、前言 事务是关系型数据库中的重要概念&#xff0c;用于保证一组数据库操作作为一个单独的工作单元来执行。无论是银行转账、订单处理还是复杂的数据修改&#xff0c;事务都能保证操作的一致性和完整性。 本文将带您从基础概念到高级技巧&#xff0c;全面了解 MySQL 事务的…

AI开源南京分享会回顾录

AI 开源南京分享会&#xff0c;已于2024年11月30日下午在国浩律师&#xff08;南京&#xff09;事务所5楼会议厅成功举办。此次活动由 KCC南京、PowerData、RISC-Verse 联合主办&#xff0c;国浩律师&#xff08;南京&#xff09;事务所协办。 活动以“开源视角的 AI 对话”为主…

docker简单私有仓库的创建

1&#xff1a;下载Registry镜像 导入镜像到本地中 [rootlocalhost ~]# docker load -i registry.tag.gz 进行检查 2&#xff1a;开启Registry registry开启的端口号为5000 [rootlocalhost ~]# docker run -d -p 5000:5000 --restartalways registry [rootlocalhost ~]# dock…

了解ARM的千兆以太网——RK3588

1. 简介 本文并不重点讲解调试内容&#xff0c;重点了解以太网在ARM设计中的框架以及在设备树以及驱动的一个整体框架。了解作为一个驱动开发人员当拿到一款未开发过的ARM板卡应该怎么去把网卡配置使用起来。 2. 基础知识介绍 在嵌入式ARM中实现以太网的解决方案通常有以下两种…

C++----入门篇

引言 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式等。熟悉C语言之后&#xff0c;对C学习有一定的帮助&#xff0c;本章节主要目标&#xff1a; 1. 补充C语言语法的不足&#xff0c;以及C是如何对C语言…

OpenCV 图像处理(一)

本章为 OpenCV 图像入门&#xff0c;主要讲解了如何加载图片&#xff0c;显示图片和保存图片。 读取图像 使用 cv.imread() 函数读取一张图像。 cv.IMREAD_COLOR&#xff1a;加载彩色图像&#xff0c;任何图像的透明度都会被忽略&#xff0c;它是默认标志&#xff1b;cv.IMRE…

网安加·百家讲坛 | 王立杰:质量与卓越:在DevOps中平衡开发速度与产品质量

作者简介&#xff1a;王立杰&#xff0c;资深敏捷创新教练、IDCF(国际DevOps教练联合会)联合发起人、华为云MVP、中国DevOps社区发起人&#xff0c;曾任京东首席敏捷创新教练、IBM客户技术专家&#xff0c;江湖人称“无敌哥”&#xff1b;最新著作《敏捷无敌之DevOps时代》、《…

KV Cache量化技术详解:深入理解LLM推理性能优化

在大模型技术快速发展的浪潮中&#xff0c;LLM的私有化部署与应用已成为各行业的刚需。然而&#xff0c;随着企业深入探索大模型应用场景&#xff0c;GPU资源消耗所带来的高昂部署成本&#xff0c;始终是制约大模型落地的关键瓶颈。特别是在需要进行模型训练和微调的特定领域应…