我对将程序拆分为header
等的概念很陌生。通常情况下,它还可以,但是在这种情况下,如果我尝试执行下一步操作,则会遇到很多错误:
假设我有一个.cpp文件:
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
#include <vector>
#include "Header.h"
using namespace std;
int main() {
//some code here
}
map <char, char> create(vector <char> &one, vector <char> &two) {
//some code here
}
vector <char> conc(string phrase) {
// some code here
}
vector <char> result(vector<char> three, map <char, char> code) {
// some code here
}
在
Header.h
中,我有:map <char, char> create(vector <char> &one, vector <char> &two);
vector <char> conc(string phrase);
vector <char> result(vector<char> three, map <char, char> code);
只是函数声明。如果我将它们放在.cpp中,则程序运行良好,但如果在Header.h中,则效果不佳。你能告诉我我在这里想念的吗?
我在cprogramming.com上阅读了拆分的概念,但是他们从未使用STL进行示例。谢谢!
最佳答案
您在cpp文件中使用using namespace std;
,但不在标头中使用(并且不要在标头中使用它),因此应使用完全限定的类型名称:
#ifndef HEADER_H
#define HEADER_H
#include <string>
#include <map>
#include <vector>
std::map <char, char> create(std::vector <char> &one, std::vector <char> &two);
std::vector <char> conc(std::string phrase);
std::vector <char> result(std::vector<char> three, std::map <char, char> code);
#endif // HEADER_H
关于c++ - header C++中带有STL的函数声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29636849/