我对将程序拆分为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/

10-11 22:33
查看更多