当前位置: 首页 > news >正文

聊聊UE的ThisClass

UE有个很有意思的设计ThisClass,你肯定看过这样的代码:

voidAMyActor::BeginPlay(){Super::BeginPlay();ThisClass::InternalReset();TSharedPtr<ThisClass>Self=MakeShared<ThisClass>();}

ThisClass在UE中作为类别名使用,相比较this关键字它可以调用静态成员,而又无需写全类名,这作为一种设计风格广泛在UE代码中出现。

1.简化类名&重构

该设计可起到简化类名的目的

TSharedPtr<FMyExtremelyLongGameplayWidget>Ptr=MakeShared<FMyExtremelyLongGameplayWidget>();// 简洁优雅TSharedPtr<ThisClass>Ptr=MakeShared<ThisClass>();

当重构时,也可做到较少改动。

2.对抗 C++ 的“名称隐藏”(Name Hiding)

这是 C++ 开发者容易踩的深坑。当子类重载了父类的同名函数时,this->Func() 可能导致意想不到的调用歧义。

classABase{public:voidLog(intCode);};classADerived:publicABase{public:voidLog();};// 隐藏了基类的 Log(int)voidADerived::Test(){// this->Log(1); // 编译错误!因为 ADerived::Log() 隐藏了父类版本ABase::Log(1);// 硬性指定父类版本——可行但繁琐ThisClass::Log();// 明确指定:我要调用当前类定义的 Log(),忽略父类干扰}

3.仅限类内部作用域

ThisClass 的 typedef 定义在类作用域内,无法在类外部使用。在 .cpp 文件的全局函数中,仍需写完整的类名。

http://www.jsqmd.com/news/1325232/

相关文章:

  • [深圳/上海/南京/广州] SHEIN 算法岗内推(30-90k):推荐/广告商业化/搜推/智能客服/风控治理/供应链/AI 视觉等。需要有电商背景。
  • 从叙事文本到结构化数据:NLP实体识别与情感分析实战
  • 视觉SLAM建图技术全解析:从稀疏特征点到语义拓扑地图
  • Python多进程编程实战:突破GIL限制的高效并行计算
  • 嵌入式DMA实战:从32位DMA控制器配置到串口数据传输优化
  • League Akari:英雄联盟玩家的终极本地工具箱完整指南
  • 事件驱动架构(EDA)核心原理与实战优化
  • ELN到底应该定制开发,还是选择标准产品?
  • 3步搞定Windows右键菜单卡顿问题:ContextMenuManager终极管理指南
  • 终极SPT-AKI存档编辑器:离线塔科夫角色修改完全指南
  • 核心部件寿命 10 万小时包装设备 - 中媒介
  • 考取这些运营岗位证书 有效助力职业发展与收入提升
  • 视频标题优化全攻略:从算法原理到爆款公式,提升B站抖音流量
  • Python网络爬虫与数据可视化:从数据采集到洞察呈现的全链路实践
  • Java餐馆管理系统:Spring Boot+MySQL实战
  • ArkTS 核心语法精讲:运算符、空安全与流程控制
  • 彻底解决Windows文件删除失败:从权限到路径的完整排查指南
  • 大模型公司集体“造芯“:从 Google 到 DeepSeek,算力自主化成为行业主线
  • 用一篇文章,帮你了解交互设计方法论「渐进式披露」
  • Unity内存碎片化诊断与优化:从原理到实践的全面解决方案
  • C++实战:基于EasyX与博弈树搜索的黑白棋AI开发指南
  • Kubernetes Agent Sandbox:为AI智能体打造云原生部署与管理框架
  • 2026 年江干值得关注的卧室整木 + 慕思软装服务商电话,你家卧室用的贵价木料加软装,竟能让睡眠幸福感翻倍还省事儿?-艺居整家装饰 - 品质体验官
  • SpringBoot+Vue美容院管理系统架构与实现
  • Python+OpenCV人脸识别实战:从环境搭建到照片自动分类
  • 单目测距实战:从相机标定到距离计算的完整指南
  • 在美国如何获得批发许可证:费用和要求
  • 动态规划入门:背包算法核心原理与Python实战详解
  • 猫抓扩展:三步掌握浏览器资源嗅探的终极免费工具
  • 自动驾驶迎来“第二春“:物理 AI 与端到端大模型重塑行业