错误:期望声明

Error: expected a declaration

本文关键字:声明 期望 错误      更新时间:2023-10-16

到目前为止,我的DecisionTree.h文件中只有

namespace DecisionTree
{
     public static double Entropy(int pos, int neg);
}

并且Visual Studio已经高亮显示了public并显示

错误:expected a declaration.

我错过了什么?

public为访问指示符。访问说明符仅适用于class/struct主体,而不适用于namespace。在c++中(与Java不同),它必须在class主体内后跟冒号:

例如,

class DecisionTree {  // <----- 'class' (not 'namespace')
public:  // <------ access specifier
  static double Entropy (int pos, int neg);
private:
  int i;
};

它肯定会给出一个错误,因为您没有声明任何类、结构体或枚举,而直接在名称空间内编写了静态函数。因此,首先在名称空间内编写类定义,然后编写函数。