_Implementation是重写函数吧?
时间: 2024-04-19 16:28:37 浏览: 22
抱歉,我刚才给出的解释有误。实际上,_Implementation 并不是用于表示重写函数的后缀。我给出的解释错误。
在UE4中,_Implementation 后缀是用于表示函数的具体实现,它与重写函数没有直接的关系。通过在函数声明中添加 UFUNCTION 宏,并在函数定义中添加 _Implementation 后缀,可以将函数的声明与具体实现分离开来,提高代码的可读性和模块化。
请忽略我之前的错误解释,再次对给出的错误信息表示抱歉。如果您有任何其他问题,请随时提问。
相关问题
UE4 C++虚函数
在UE4中,可以使用BlueprintNativeEvent来实现C++类之间、C++和蓝图之间的虚函数。具体实现方式如下:
1.在C++类中声明虚函数,并使用BlueprintNativeEvent关键字标记:
```cpp
UFUNCTION(BlueprintNativeEvent)
void MyVirtualFunction();
virtual void MyVirtualFunction_Implementation();
```
2.在C++类中实现虚函数:
```cpp
void MyClass::MyVirtualFunction_Implementation()
{
// 实现代码
}
```
3.在C++子类中重写虚函数:
```cpp
void MySubClass::MyVirtualFunction_Implementation()
{
// 重写实现代码
}
```
4.在蓝图中重写虚函数:
在蓝图中,可以直接使用虚函数,并在Override选项中选择要重写的虚函数。
用BlueprintNativeEvent标记函数不管在c++中定义与否都报错,但相同的函数用BlueprintImplementableEvent标记就不报错
如果在使用`BlueprintNativeEvent`标记函数时出现错误,可能是因为您没有在C++类中正确地实现该函数。
`BlueprintNativeEvent`标记指示该函数可以在蓝图中重写和实现,但在C++类中仅提供一个默认的空实现。因此,在C++类中,您需要提供一个以`_Implementation`结尾的函数,该函数将被蓝图实现所调用。
例如,假设您的函数声明如下:
```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Motor")
void Motor_driven(bool bLoop, FVector Targetpoint);
```
然后在C++类中提供一个默认的空实现:
```cpp
void UYourClass::Motor_driven_Implementation(bool bLoop, FVector Targetpoint)
{
// 默认空实现
}
```
在蓝图中,您可以通过重写并实现该函数来添加自定义的行为。
如果问题仍然存在,请提供更多关于错误消息和相关代码的详细信息,以便我能够更具体地帮助您解决问题。