[原]C++关于运算符重载的程序报错error…

错误信息如下:
1>t2.obj error LNK2019: 无法解析的外部符号 "public: __thiscall Date::Date(void)" (??0Date@@QAE@XZ),该符号在函数 "class Date __cdecl operator+(class Date const &,class Date const &)" (??H@YA?AVDate@@ABV0@0@Z) 中被引用
1>C:\Users\Chengyao\Documents\Workspaces\Visual Studio 2012\Projects\Test11\Debug\Test12.exe fatal error LNK1120: 个无法解析的外部命令

代码如下:
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include
using namespace std;
class Date{
    int m_y;
    int m_m;
    int m_d;
public:
    Date();
    Date(int y,int m,int d){
        m_y=y;
        m_m=m;
        m_d=d;
    }
public:
    void set(int y,int m,int d){
        m_y=y;
        m_m=m;
        m_d=d;
    }
    friend Date operator+(const Date& d1,const Date& d2){
        Date d;
        d.set(d1.m_y+d2.m_y,d1.m_m+d2.m_m,d1.m_d+d2.m_d);
        return d;
    }
    void display(){
        cout<<"The date is:"<<m_y<<","<<m_m<<","<<m_d<<endl;
    }
};
int main(){
    Date d1(2009,11,10);
    d1.display();
    Date d2(1,1,1);
    d2.display();
    (d1+d2).display();
}

解决办法:
1
2
3
Date()
{
};//改成这样
构造函数没有定义。
作者:gcy77 发表于2014-3-12 15:16:26 原文链接
阅读:68 评论:0 查看评论
posted @ 2014-03-12 15:16  Murderer  阅读(448)  评论(0编辑  收藏  举报