我无法理解,当我想用AMyStaticMeshActor类型初始化对象时如何修复错误:
AMyStaticMeshActor a();
错误是:
错误C4930:'AMyStaticMeshActor a(void)':未调用prototyped函数(是否为变量定义?)
MyStaticMeshActor.h:
#pragma once
#include "Engine/StaticMeshActor.h"
#include "MyStaticMeshActor.generated.h"
/**
*
*/
UCLASS()
class MYGAME_API AMyStaticMeshActor : public AStaticMeshActor
{
GENERATED_BODY()
public:
AMyStaticMeshActor();
AMyStaticMeshActor(FVector location);
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick(float DeltaSeconds) override;
UPROPERTY(EditAnywhere, Category = General)
TSubclassOf<class AActor> WhatToSpawn;
UPROPERTY(Category = Block, VisibleDefaultsOnly, BLueprintReadOnly, meta = (AllowPrivateAccess = "true"))
class UBlueprint* Crystal;
};
MyStaticMeshActor.cpp:
#include "MyGame.h"
#include "MyStaticMeshActor.h"
AMyStaticMeshActor::AMyStaticMeshActor() {
}
AMyStaticMeshActor::AMyStaticMeshActor(FVector location) {
}
// Called when the game starts or when spawned
void AMyStaticMeshActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMyStaticMeshActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
如何解决此问题?
答案 0 :(得分:3)
AMyStaticMeshActor a();
这不会创建一个名为a
的{{1}}类型的变量,它会声明一个名为AMyStaticMeshActor
的函数,它返回a
并且不带参数。
要解决此问题,只需删除括号:
AMyStaticMeshActor
答案 1 :(得分:0)
您的变量定义被视为名为AMyStaticMeshActor a;
AMyStaticMeshActor a{}; //or in C++11
的函数,不带参数并返回a
。要使用默认构造函数创建变量,可以使用以下命令:
AMyStaticMeshActor