c++ - 如何修复错误 C4930 : 'AMyStaticMeshActor a(void)' : prototyped function not called (was a variable definition intended?)

标签 c++

我不明白,当我想用​​ AMyStaticMeshActor 类型初始化对象时如何修复错误:

AMyStaticMeshActor a();

错误是:

error C4930: 'AMyStaticMeshActor a(void)': prototyped function not called (was a variable definition intended?)

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);

}

如何解决这个问题?

最佳答案

这被称为 most vexing parse .

AMyStaticMeshActor a();

它不会创建类型为 AMyStaticMeshActor 的名为 a 的变量,它声明了一个名为 a 的函数,该函数返回一个 AMyStaticMeshActor 并且不带任何参数。

要解决这个问题,只需删除括号:

AMyStaticMeshActor a;
AMyStaticMeshActor a{}; //or in C++11

关于c++ - 如何修复错误 C4930 : 'AMyStaticMeshActor a(void)' : prototyped function not called (was a variable definition intended?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31005571/

相关文章:

c++ - 已弃用的 std::auto_ptr 的 c++11 标准等价物是什么?

c++ - 有没有一种方法可以在我的程序中打印所有声明的变量?

c++ - const_cast(iterator->second) 安全吗?

c++ - 在 winsock recv() 方法上调用了 abort()

C++ 如何将数组 int[10] push_back 到 std::vector<int[10]>?

c++ - 读写同一个文件c++

c++ - C++ 上下文中的执行程序模式是什么?

c++ - 保护 Cap'n Proto RPC 网络流量的好方法是什么?

c++ - 传递结构句柄(将 C 转换为 C++ OOP)

c++ - 抽象类和基类是一回事吗?