类构造函数:未解析的外部

时间:2014-02-07 06:49:53

标签: c++ constructor linker

我一直有这样的日子,我一直在和无休止的一系列莫名其妙的错误。

最让我烦恼的可能是一个非常愚蠢的初学者的错误,但是上帝禁止我的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未解决   的外部

唯一的问题是,我很确定我写了那个构造函数,而且我很确定我包含了头文件。那么我错过了什么?

1 个答案:

答案 0 :(得分:1)

在链接过程之前创建数据对象,即Data.cpp附加到项目并编译