请查看我的代码。我在Visual Studio中得到的错误是
error LNK2019: unresolved external symbol "public: int __thiscall Employee::getId(void)" (?getId@Employee@@QAEHXZ) referenced in function _main
Employee.h
#ifndef EMPLOYEES
#define EMPLOYEES
#include <string>
#include <iostream>
using namespace std;
class Employee
{
private:
string name;
int id;
public:
Employee();
Employee(string nm, int idd);
string getName();
int getId();
};
#endif
Employee.cpp
#include "Employee.h"
#include <string>
Employee::Employee()
{
name="unknown";
id=0;
}
Employee::Employee(string nm, int idd)
{
name=nm;
id=idd;
}
string Employee::getName()
{
return name;
}
int Employee::getId()
{
return id;
}
驱动器
#include <iostream>
#include <string>
#include "Employee.h"
using namespace std;
int main()
{
Employee bob("bob", 3);
cout << bob.getId();
}
答案 0 :(得分:2)
您似乎忘了将两个文件链接在一起。确保将Employee.cpp和main.cpp文件链接在一起。它们是否被添加到同一个VS项目中?
编辑:查看this link。它已经过时了,但看起来你做了不制作一个包含所有文件的项目。它们应该自动链接。
答案 1 :(得分:1)
看起来您没有链接Employee.o,Employee.cpp的结果,或直接添加Employee.cpp以使用main.cpp进行编译
最终链接器看到main,但找不到Employee.cpp中定义的内容