1

授業中に完了できなかったチュートリアルに取り組もうとしていますが、エラーを見つけるのに苦労しています。これまでに明示的な修飾エラーを見たことがないので、どこから始めればよいかさえわかりません。この種のエラーについてオンラインで見つけることができる唯一のリソースは、名前空間を使用するときに行う必要があり、少なくとも明示的にはそうではないと思います(名前空間std以外)。

私はどこかでばかげた間違いを犯していると確信していますが、これらは私が得ているエラーです:

View.cpp:12:55: error: explicit qualification in declaration of ‘void promptForAnimals(Animal**, int&)’
View.cpp:53:25: error: explicit qualification in declaration of ‘void printDance(Animal*)’

これは私の promptForAnimals 関数です:

void::promptForAnimals(Animal* barn[], int& numAnimals)
{

  //Animal* barn[MAX_ANIMALS];
  int num;
  string name;

  cout << "How many birds? ";
  cin  >> num; cin.ignore();
  for (int i=0; i<num; i++) {
    cout << "Name " << i+1 << ":  ";
    getline(cin, name);
    barn[numAnimals++] = new Bird(name);
  }

  etc
  }

}

私のprintDanceAnimalは空で、次のものがあります:

void::printDance(Animal*)
{
}

エラーは私のヘッダーファイルに関係している可能性が非常に高いため、ここで適切な測定を行います。

#ifndef VIEW_H
#define VIEW_H
#include "Animal.h"
#include "defs.h"
#include <iostream>
using namespace std;

class View
{
    public:
        View();
        ~View();
        void promptForAnimals(Animal**, int&);
        void printDance(Animal*);

};

#endif
4

3 に答える 3

3

これらの関数定義にクラス名がありません:

アップデート:

void::promptForAnimals(Animal* barn[], int& numAnimals)
void::printDance(Animal*)

に:

void View::promptForAnimals(Animal* barn[], int& numAnimals)
void View::printDance(Animal*)
于 2013-03-01T01:12:19.573 に答える
1
void::promptForAnimals(Animal* barn[], int& numAnimals)

これは間違っています。次のようにする必要があります。

void View::promptForAnimals(Animal* barn[], int& numAnimals)
{
    // ...
}
于 2013-03-01T01:13:02.077 に答える