C++关于运算符重载的程序报错error LNK2019

The_Murderer 2014-01-04 03:38:53
错误信息如下:
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: 1 个无法解析的外部命令

代码如下:
#include<iostream>
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();
}
...全文
292 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
The_Murderer 2014-01-04
  • 打赏
  • 举报
回复
引用 1 楼 a345485527 的回复:
lz你的默认构造函数没有定义

Date()
{
};//改成这样
谢谢,解决了~
Pump天天学习 2014-01-04
  • 打赏
  • 举报
回复
lz你的默认构造函数没有定义

Date()
{
};//改成这样

65,126

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧