C++ C++;错误:声明中的显式限定
我正在努力完成一个在课堂上无法完成的教程,我很难找出我的错误。我以前从未看到过明确的鉴定错误,所以我甚至不知道从哪里开始。我能在网上找到的关于此类错误的唯一资源是在使用名称空间时,我不认为我是,至少不是明确的(除了名称空间std) 我确信我在某个地方犯了一个愚蠢的错误,但我得到的错误如下:C++ C++;错误:声明中的显式限定,c++,g++,C++,G++,我正在努力完成一个在课堂上无法完成的教程,我很难找出我的错误。我以前从未看到过明确的鉴定错误,所以我甚至不知道从哪里开始。我能在网上找到的关于此类错误的唯一资源是在使用名称空间时,我不认为我是,至少不是明确的(除了名称空间std) 我确信我在某个地方犯了一个愚蠢的错误,但我得到的错误如下: View.cpp:12:55: error: explicit qualification in declaration of ‘void promptForAnimals(Animal**, int&
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*)’
这是我的动物提示功能:
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
}
}
这些错误很可能与我的头文件有关,因此这里有一个很好的衡量标准:
#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
\ifndef视图
#定义视图
#包括“Animal.h”
#包括“defs.h”
#包括
使用名称空间std;
类视图
{
公众:
视图();
~View();
动物(动物**,国际和)无效提示;
舞蹈(动物*);
};
#恩迪夫
这些函数定义中缺少类名:
更新:
void::promptForAnimals(Animal* barn[], int& numAnimals)
void::printDance(Animal*)
致:
这些函数定义中缺少类名: 更新:
void::promptForAnimals(Animal* barn[], int& numAnimals)
void::printDance(Animal*)
致:
这是错误的。应该是:
void View::promptForAnimals(Animal* barn[], int& numAnimals)
{
// ...
}
这是错误的。应该是:
void View::promptForAnimals(Animal* barn[], int& numAnimals)
{
// ...
}
当您显式指定已打开的命名空间时,会出现此错误
namespace SomeName {
int SomeName::someFunc() { return 0; } //error
}
我怀疑,空名称空间是始终打开的全局名称空间的名称,因此这就是为什么在您的案例中会发生此类错误,这相当于:
int ::someFunc() { return 0; } //error again
当您显式指定已打开的命名空间时,会出现此错误
namespace SomeName {
int SomeName::someFunc() { return 0; } //error
}
我怀疑,空名称空间是始终打开的全局名称空间的名称,因此这就是为什么在您的案例中会发生此类错误,这相当于:
int ::someFunc() { return 0; } //error again
我知道这是个愚蠢的错误!非常感谢你!今天我盯着代码看了太久了。我知道这是个愚蠢的错误!非常感谢你!今天我盯着代码看了太久了。