我是c ++的新手,所以有很多我不知道的事情,这就是为什么我想问一个有更多经验的人。
std::vector<CProp*> filter(const string &deptName, const string &city, const string &country)const {
...
}
我使用std命名空间,所以std ::应该是冗余的,但是如果我删除它,编译器会显示错误(首先是这个声明没有存储类或类型说明符?< / em>的)。这是为什么?我从来没有在课堂上的其他地方使用它,所以我也不应该使用std命名空间。
#include <cassert>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <iomanip>
#include <string>
#include <memory>
#include <vector>
#include <algorithm>
using namespace std;
class ClassName {
public:
...
private:
vector<CProp*> vector;
vector<CProp*> filter(const string &deptName, const string &city, const string &country)const {
return nullptr;
}
}
答案 0 :(得分:5)
这定义了一个名为&#34; vector&#34;与std :: vector
冲突private:
vector<CProp*> vector;
答案 1 :(得分:0)
string
还需要std::
。所以你应该
std::vector<CProp*> filter(const std::string &deptName, const std::string &city, const std::string &country)const {
...
}
我同意所有评论者的说法&#34;不要使用using namespace std
&#34;。
答案 2 :(得分:0)
您没有使用分号;
关闭班级声明。这让编译器感到困惑。
您还需要编写void SomeFunctions();
,因为这也会使编译器感到困惑。并且不要忘记为该函数添加定义,否则构建的链接阶段将失败。
您还需要一些运行的方式。为此,您需要main
功能。或者这是别人的工作?