查看: 785|回复: 10

[编程指南] 【共享引用 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 01:28:39 | 显示全部楼层 |阅读模式


本页面的内容:

      
声明和初始化

共享引用应用
指针和引用的转换
     
共享引用 是不能设置为null的共享指针。这意味着您不能创建一个空的共享引用,不能给一个共享引用赋予null值,这可以帮助您书写更加安全的、更加整洁的代码,因为你知道访问这个对象是安全的。事实上,共享引用甚至没有像共享指针那样的  IsValid() 方法,因为它们总是有效的。所以,任何可能的时候推荐您总是使用共享引用而不是共享指针。

如果您需要使用 空引用/可以设置为null值的引用,那么此时您可以使用 共享指针。
声明和初始化
共享引用必须使用有效的对象进行初始化,且在声明时必须进行初始化。

创建新的共享引用的示例:

// 创建共享引用到新节点TSharedRefFTreeNode NodeRef( new FTreeNode() );
永远不允许声明一个没有初始化或者赋值为NULL的共享引用:

TSharedRefUBool EmptyBool;
     // Will not Compile!!共享引用应用
大多数情况下,使用共享引用就和使用共享指针一样。

// 创建共享引用到新节点TSharedRefFTreeNode NodeRef( new FTreeNode() );NodeRef-ListChildren();( *NodeRef ).ListChildren();const FTreeNode NodeVar = NodeRef.Get();
再次强调,主要的区别是您不能把共享引用设置为NULL:

TSharedRefFTreeNode Node = NULL;      // Will not Compile!!
指针和引用的转换
共享引用可以隐式地转换为共享指针,所以从一个引用转换而来的指针总是安全的,也就是,您可以给共享指针分配一个共享引用或者向一个需要共享指针的方法传入一个共享引用。

TSharedPtrFTreeNode SomeNodePtr = NodeRef;
然而,从指针转换为引用则可能是不安全的,所以您必须强制使用 ToSharedRef() 函数显式地执行转换。

// 明确地引用指针。如果指针无效将会断言!NodeRef = SomeNodePtr.ToSharedRef();
和C++指针的 * 操作符类似,如果该对象无效,使用 ToSharedRef() 时将会产生断言。
回复

使用道具 举报

0

主题

856

帖子

2864

积分

vip会员

Rank: 1

积分
2864
发表于 2016-7-2 19:49:49 来自手机 | 显示全部楼层
版主我爱你
回复 支持 反对

使用道具 举报

0

主题

934

帖子

3089

积分

vip会员

Rank: 1

积分
3089
发表于 2016-7-4 01:51:21 来自手机 | 显示全部楼层
都是好东西
回复 支持 反对

使用道具 举报

0

主题

894

帖子

2993

积分

vip会员

Rank: 1

积分
2993
发表于 2016-7-4 11:55:13 | 显示全部楼层
这个不会又是超级贵吧.
回复 支持 反对

使用道具 举报

0

主题

1243

帖子

3953

积分

vip会员

Rank: 1

积分
3953
发表于 2016-7-5 19:46:47 来自手机 | 显示全部楼层
楼主真是好人吖~~非常感谢
回复 支持 反对

使用道具 举报

0

主题

826

帖子

2746

积分

vip会员

Rank: 1

积分
2746
发表于 2016-7-5 22:14:19 | 显示全部楼层
看看贵不贵,不贵就下
回复 支持 反对

使用道具 举报

0

主题

844

帖子

2750

积分

vip会员

Rank: 1

积分
2750
发表于 2016-7-7 21:21:12 | 显示全部楼层
不错,我喜欢这个,看看多少金币哦
回复 支持 反对

使用道具 举报

0

主题

882

帖子

2933

积分

vip会员

Rank: 1

积分
2933
发表于 2016-7-11 15:11:50 | 显示全部楼层
谢谢共享,总之先收藏了
回复 支持 反对

使用道具 举报

0

主题

908

帖子

3041

积分

vip会员

Rank: 1

积分
3041
发表于 2016-7-12 18:49:31 来自手机 | 显示全部楼层
什么鬼???看着很不错的样子啊!
回复 支持 反对

使用道具 举报

0

主题

850

帖子

2780

积分

vip会员

Rank: 1

积分
2780
发表于 2016-7-13 01:26:24 来自手机 | 显示全部楼层
什么游戏看看
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部