0

プログラムでライブラリ「gum」のメソッドを呼び出すのに問題があります。

gum::BayesNet<double> *myBayNet=new gum::BayesNet<double>;
gum::DiscrereVariable* DV=new gum::DiscretizedVariable<double>;
int main()
{
  // error: invalid declaration
  // of 'gum::BayesNet<duoble>::add' & //forbids declaration of 'DV' 
  unsigned int gum::BayesNet<duoble>::add(const (*DV) str) 
  {
    return (*myBayNet).add(str);
  }
}

(コメントのエラーメッセージを参照してください。)

4

2 に答える 2

2

DAFUQ あれconst (*DV) strDVは変数であり、それを型名として使用しようとしています。(*myBayNet).add(str)また、より単純な(そしてより短い)方法を書く代わりに、と書くことmyBayNet->add(str)です。

于 2012-04-08T18:50:53.467 に答える
1

メソッドを呼び出しているのではなく、定義しています。main()ただし、または他の関数スコープ内でメンバー関数を定義してはなりません。名前空間スコープで定義する必要があります。

于 2012-04-08T18:49:05.073 に答える