C++ &引用;不为类型命名";从类引用typedef时出错

C++ &引用;不为类型命名";从类引用typedef时出错,c++,compiler-errors,typedef,C++,Compiler Errors,Typedef,我对类中的typedef有如下定义 /* *ReportData.h */ class ReportData { public: /** Classifiers information **/ typedef struct{ char *classifier; uint8_t numCategories; char **categories; int *ranges;

我对类中的typedef有如下定义

/*
 *ReportData.h
 */
class ReportData {

public:

    /** Classifiers information  **/
    typedef struct{ 
        char *classifier;
        uint8_t numCategories;
        char **categories;    
        int *ranges;          
    } Classification;
};
此代码稍后引用如下

/*
 * DynamicCarDetection.cpp 
 */

    #include <DataReport.h>

    int numOfClassGroups = 1;
    int numOfCategories = 2;
    ReportData::Classification *vehiclesClassificators;

    vehiclesClassificators = new ReportData::Classification[numOfClassGroups];

    vehiclesClassificators[i].numCategories = NumOfcategories;
    vehiclesClassificators[i].categories = new char *[numOfcategories];
每次引用车辆分类时都会出现此错误

DynamicCarDetection.cpp:12:1:错误:“Vehicles Classificators”不存在 命名类型

看起来是名称范围界定的一个明显错误,但我一直在努力理解问题是什么,因为显然,typedef ReportData::Classification正在被识别

在C++中,预先感谢

< P>,句子(除了一些角的情况)必须是函数体的一部分。在您的CPP文件中没有,因此编译器会对您正在做的事情感到困惑

#include <DataReport.h>

void DoThings()
{
    int numOfClassGroups = 1;
    //....
}
#包括
void DoThings()
{
int numOfClassGroups=1;
//....
}

DynamicCarDetection.cpp
中某些函数中的所有语句吗?此外,为什么当代码为C++时,为什么使用GCC?为什么在C++中使用<代码> TyPufFrase?新手这不是一个借口,但它来自于进行测试,试图使结构数组的静态初始化工作,因此代码在定义部分结束。
#include <DataReport.h>

void DoThings()
{
    int numOfClassGroups = 1;
    //....
}