我在类
中有一个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];
当我尝试使用此命令编译时
g++ -c DynamicCarDetection.cpp -I ./
我对每个对VehiclesClassificators的引用都会出现此错误
DynamicCarDetection.cpp:12:1:错误:'vehiclesClassificators'没有 命名一个类型
看起来像名称范围的明显错误,但我很难理解问题是什么,因为显然,typedef ReportData :: Classification正在被识别。
非常感谢提前
答案 0 :(得分:4)
在C ++中,句子(除了一些极端情况)必须是函数体的一部分。在你的CPP文件中没有,所以编译器对你正在做的事情感到困惑。
#include <DataReport.h>
void DoThings()
{
int numOfClassGroups = 1;
//....
}