我一直有这样的日子,我一直在和无休止的一系列莫名其妙的错误。
最让我烦恼的可能是一个非常愚蠢的初学者的错误,但是上帝禁止我的google fu今天找到答案。
所以,我有一个非常非常简单的程序,有三个文件:main.cpp,date.cpp和date.h.它实际上来自我发现的一个例子,但这就是我所拥有的那一天:即使是示例代码也会给我带来错误。
由于这是愚蠢的,我只会发布代码:
main.cpp中:
#include "Date.h"
int main(void) {
Date today(2,2,2);
return 0;
}
date.h:
#ifndef DATE_H
#define DATE_H
class Date
{
private:
int m_nMonth;
int m_nDay;
int m_nYear;
public:
Date();
Date(int nMonth, int nDay, int nYear);
void SetDate(int nMonth, int nDay, int nYear);
int GetMonth() { return m_nMonth; }
int GetDay() { return m_nDay; }
int GetYear() { return m_nYear; }
};
#endif
最后是date.cpp:
#include "Date.h"
// Date constructor
Date::Date() {
SetDate(1,1,1);
}
Date::Date(int nMonth, int nDay, int nYear)
{
SetDate(nMonth, nDay, nYear);
}
// Date member function
void Date::SetDate(int nMonth, int nDay, int nYear)
{
m_nMonth = nMonth;
m_nDay = nDay;
m_nYear = nYear;
}
编译后(visual C ++)我收到此错误:
main.obj:错误LNK2019:未解析的外部符号“public: __thiscall Date :: Date(int,int,int)“(?? 0Date @@ QAE @HHH @Z)在函数_main main.exe中引用:致命错误LNK1120:1未解决 的外部
唯一的问题是,我很确定我写了那个构造函数,而且我很确定我包含了头文件。那么我错过了什么?
答案 0 :(得分:1)
在链接过程之前创建数据对象,即Data.cpp附加到项目并编译