UE5.1 继承aactor写的c++如何封装
时间: 2024-02-11 07:04:55 浏览: 21
封装是面向对象编程的一项基本特征,用于隐藏类的内部实现细节,使得外部只能通过类的公共接口来访问类的成员变量和成员函数。在UE5.1中,继承AActor编写的C++代码也可以进行封装。
具体实现方法如下:
1. 将类的成员变量和成员函数分为私有(private)、公共(public)和受保护(protected)三种类型。
2. 私有成员变量和成员函数一般只能在类内部访问,外部无法直接访问。可以使用get和set函数来对私有成员变量进行访问和修改。
3. 公共成员变量和成员函数可以被外部访问,通常用于提供类的接口。
4. 受保护成员变量和成员函数可以在派生类中访问,但在类外部无法访问。
下面是一个简单的示例代码,演示了如何对AActor的派生类进行封装:
```
// Header File
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"
UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
GENERATED_BODY()
public:
// 构造函数
AMyActor();
// 公共成员函数
UFUNCTION(BlueprintCallable, Category = "MyActor")
void MyFunction();
protected:
// 受保护成员变量
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyActor")
float MyProtectedVariable;
private:
// 私有成员变量
int MyPrivateVariable;
// 私有成员函数
void MyPrivateFunction();
};
// CPP File
#include "MyActor.h"
AMyActor::AMyActor()
{
// 设置默认值
MyProtectedVariable = 0.0f;
MyPrivateVariable = 0;
}
void AMyActor::MyFunction()
{
// TODO: 在这里实现函数代码
}
void AMyActor::MyPrivateFunction()
{
// TODO: 在这里实现私有函数代码
}
int AMyActor::GetMyPrivateVariable()
{
return MyPrivateVariable;
}
void AMyActor::SetMyPrivateVariable(int NewValue)
{
MyPrivateVariable = NewValue;
}
```
在上面的示例代码中,我们定义了一个派生自AActor的类AMyActor,并对类的成员变量和成员函数进行了封装。其中,MyProtectedVariable是一个受保护的成员变量,可以在派生类中访问;MyPrivateVariable是一个私有的成员变量,外部无法直接访问,但可以通过Get和Set函数进行访问和修改;MyFunction是一个公共的成员函数,可以被外部调用。