How to use C++ class as variable in Data Table?

I created a base c++ class for my items, let’s call it ABaseItem. It have the following code:

UCLASS(Blueprintable, BlueprintType)
class BEBRAVE_API ABaseItem : public AActor
{
	GENERATED_UCLASS_BODY()
protected:
	UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "Base Item")
	FName Name;
	UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "Base Item")
	FText Description;
	UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "Base Item")
	UStaticMeshComponent* StaticMesh;
public:	
	// Sets default values for this actor's properties
	ABaseItem();
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;
};

Now I’m creating Data Table struct like this:

USTRUCT(Blueprintable, BlueprintType)
struct FInventory : public FTableRowBase
{
	GENERATED_USTRUCT_BODY()
public:
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Character Iventory")
	FString Id;

	UPROPERTY(BlueprintReadWrite, EditAnywhere)
	int32 Amount;

	UPROPERTY(BlueprintReadWrite, EditAnywhere)
	ABaseItem* Item;
};

But when I’m creating Data Table of this struct each variable are shown, except of Item variable. What I’m doing wrong?

Hello,

Because your datatable (an asset) cannot reference instantiated actors (maybe from a world ?).
If, maybe, you wanted to allow to select a class inheriting from ABaseItem, you can use TSubClassOf.