这是我将 2 个 Duration 对象以格式添加在一起的方法(HH,MM,SS)
。
inline ostream& operator<<(ostream& ostr, const Duration& d){
return ostr << d.getHours() << ':' << d.getMinutes() << ':' << d.getSeconds();
}
Duration operator+ (const Duration& x, const Duration& y){
if ( (x.getMinutes() + y.getMinutes() >= 60) && (x.getSeconds() + y.getSeconds() >= 60) ){
Duration z( (x.getHours() + y.getHours() + 1), (x.getMinutes() + y.getMinutes() + 1 - 60), (x.getSeconds() + y.getSeconds() - 60) );
return z;
}
else if (x.getSeconds() + y.getSeconds() >= 60){
Duration z( (x.getHours() + y.getHours()), (x.getMinutes() + y.getMinutes() + 1), (x.getSeconds() + y.getSeconds() - 60) );
return z;
}
else if (x.getMinutes() + y.getMinutes() >= 60){
Duration z( (x.getHours() + y.getHours() + 1), (x.getMinutes() + y.getMinutes() - 60), (x.getSeconds() + y.getSeconds()) );
return z;
}
else{
Duration z( (x.getHours() + y.getHours()), (x.getMinutes() + y.getMinutes()), (x.getSeconds() + y.getSeconds()) );
return z;
}
}
在我的主要方法中,我有:
Duration dTest4 (01,25,15);
Duration result = dTest4+dTest4;
cout << result << endl;
不幸的是,当我运行程序时,我得到了这个错误:
error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Duration const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVDuration@@@Z) referenced in function _wmain 1>C:\Users\...exe : fatal error LNK1120: 1 unresolved externals
我希望能够在单个实体中将两次相加。IE。小时加在一起,然后是分钟,然后是秒。因此if-else
,当 2 组分钟超过一个小时的 60 分钟上限时要处理......
任何帮助,将不胜感激。