Ошибка: ожидается объявление - PullRequest
5 голосов
/ 28 сентября 2011

Пока что все, что у меня есть в моем файле DecisionTree.h, это

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

, и Visual Studio уже выделяет public и говорит

Ошибка: ожидается объявление.

Чего мне не хватает?

Ответы [ 2 ]

8 голосов
/ 28 сентября 2011

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;
};
0 голосов
/ 28 сентября 2011

Это определенно даст ошибку, поскольку вы не объявили какой-либо класс, структуру или перечисление, и непосредственно вы написали статическую функцию внутри пространства имен.Итак, сначала напишите определение класса внутри пространства имен, а затем функцию.

...