我快疯了。我只有一个 header 和 cpp,但无法编译:
.h 如下:
#pragma once
#include <string>
#include <map>
#include <windows.h>
class Activate
{
public:
Activate();
~Activate();
int accion(map<string, string>& mapa);
};
和 cpp 这一个:
#include "Activate.h"
using namespace std;
Activate::Activate()
{
}
Activate::~Activate()
{
}
int Activate::accion(map<string, string>& mapa){}
我得到了上面提到的错误:
1>c:\users\dani.roca\desktop\autocad files\mfc dll\project1\project1\activate.h(19): error C2061: syntax error : identifier 'map'
1>c:\users\dani.roca\desktop\autocad files\mfc dll\project1\project1\activate.cpp(13): error C2511: 'int Activate::accion(std::map<_Kty,_Ty> &)' : overloaded member function not found in 'Activate'
#include "Activate.h"
using namespace std;
Activate::Activate()
{
}
Activate::~Activate()
{
}
int Activate::accion(std::map<string, string>& mapa){}
还有这个
class Activate
{
public:
Activate();
~Activate();
int accion(std::map<std::string, std::string>& mapa);
};
然后出现了新的错误:
1>LINK: fatal error LNK1561:必须定义入口点
最佳答案
替换int accion(map<string, string>& mapa);
与
int accion(std::map<std::string, std::string>& mapa);
// ^^^^^ ^^^^^ ^^^^^
当您包含 header 时,using namespace std
尚未生效。
作为替代方案,您可以添加 using std::map;
和 using std::string;
在你的类里面。
class Activate
{
public:
Activate();
~Activate();
using std::map;
using std::string;
int accion(map<string, string>& mapa);
};
关于c++ - 错误 C2061 : syntax error : identifier 'map' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36036070/