我想弄清楚为什么我得到了一个错误:预期的类名在 { token 之前
这里是错误的相对来源:
#pragma once
#ifndef H_FXACTION
#define H_FXACTION
#include "CP_M_RefCounted.h"
#include "FxTypes.h"
#include "string"
#include "FxString.h"
#include "FxPixels.h"
#include "CP_Rect.h"
#include "FxStreamable.h"
#include "FxPoint.h"
#include "FxPtr.h"
#include "FxImage.h"
#include "FxSleekStreaming.h"
typedef FxID FxActionType;
typedef FxUInt32 FxActionID;
FxActionID FrMakeUniqueActionID(void);
class FxActionData;
class FxActionData : public CP_M_RefCounted
{
public:
FxActionData();
FxActionData(FxBool final) :mFinal(final) { }
virtual ~FxActionData();
我在这一行收到错误:class FxActionData : public CP_M_RefCounted
我不明白为什么这行:class FxActionData;当您直接在其下创建类时是否存在。这不是前向声明吗?
这里可能发生了什么事情?
最佳答案
class FxActionData;
是一个*前向声明。它不会造成任何伤害,但允许不拖入完整的头文件,例如,只是一个指向类的指针。这对你这里的情况没用。
CP_M_RefCounted
可能是一个模板(或者可能在命名空间中声明)。查看 CP_M_RefCounted.h
关于c++ - { token 之前的预期类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2576193/