У меня есть 2 файла Article13Filter.h
и Article.cpp
, в которых я определяю все объявленные функции класса, расположенного в файле .h
. Однако компилятор VS сообщает мне, что в файле Article13Filter.h
слово Article13Filter
, которое я пишу перед определением каждой функции (чтобы обозначить, что оно принадлежит этому классу), не является именем класса или пространства имен, даже если они include
директивы правильно включены в соответствующие файлы? Я хотел бы спросить, почему это так?
Article13Filter.h
file:
#ifndef ARTICLE_13_FILTER_H
#define ARTICLE_13_FILTER_H
#include <string>
#include <vector>
#include <set>
#include "Article.cpp"
class Article13Filter {
private:
std::set<std::string> copyrighted;
std::vector<std::string> blocked;
public:
Article13Filter(std::set<std::string> copyrighted);
bool blockIfCopyrighted(std::string s);
bool isCopyrighted(std::string s);
std::vector<std::string> getBlocked();
};
#endif // !ARTICLE_13_FILTER_H
Article
.cpp файл:
#include <iostream>
#include <string>
#include <set>
#include "Article13Filter.h"
using namespace std;
bool Article13Filter::isCopyrighted(string s) {
for (set<string>::iterator it = copyrighted.begin(); it != copyrighted.end(); it++) {
if (*it == s) {
return true;
}
return false;
}
}
bool Article13Filter::blockIfCopyrighted(string s) {
if (isCopyrighted(s)) {
return false;
}
return true;
}
vector<string> Article13Filter::getBlocked() {
return blocked;
}