[原]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 查看评论

你可能感兴趣的:(error)