错误:预期声明

时间:2011-09-28 04:20:46

标签: c++ compiler-errors access-specifier

到目前为止,我在DecisionTree.h文件中的所有内容都是

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

并且Visual Studio已经突出显示public并说

  

错误:预期声明。

我错过了什么?

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

它肯定会给出一个错误,因为你dint声明了任何类,结构或枚举,并且你直接在命名空间中编写了一个静态函数。因此,首先在命名空间内编写一个类定义,然后编写一个函数。