【学习】[C++&UE5]Template Functions 模板函数

template<typename T>
	T Avg(T Frist, T Second);

在头文件声明模板函数<类型名称 参数名称>

模板参数名称一般使用T

T 使用平均公式,其接收两个参数

在每次使用Avg函数时,首先需要声明T的类型。

template<typename T>
inline T AItem::Avg(T Frist, T Second)//接受任何T类型的参数(类型需要支持加减乘除)
{
	return T(Frist+Second)/2;
}

在CPP文件中定义函数

inline:每次调用它都会换成我们在<>中声明的函数类型

-----------------------------------------------------------------------------------------------------

接下来调用已经设置好的Avg模板函数

int32 AvgInt=Avg<int32>(1, 3);//Avg是预设函数,<>里面是类型声明,加入参数进行平均数计算
	UE_LOG(LogTemp, Warning, TEXT("1 and 3 Avg = %d"), AvgInt);


	float AvgFloat = Avg<float>(3.36f, 7.78f);//创建一个类型的形参,接收返回值。
	UE_LOG(LogTemp, Warning, TEXT("3.36 and 7.78 Avg = %f"), AvgFloat);

创建了相同返回值类型的参数接收这个值,下方为日志中打印函数。

FVector AvgVector = Avg<FVector>(GetActorLocation(), FVector::ZeroVector);

	DRAW_POINT_SingleFrame(AvgVector);

也可以计算向量的平均值(坐标):计算Actor位置与Actor的零点坐标的中点

用调试点打印出来。

但旋转器(Rotator)没有除法运算符。无法进行计算,将Rotator相除是没有意义的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值