此处unsigned long EVTime::seconds()
与ptime p(d,seconds(s));
冲突。如果我将ptime seconds(s)
更改为分钟/小时,则可以正常工作。
如果我将seconds(s)
更改为minutes(s)
或hours(s)
,则只有它可以工作。我是C ++的新手,请任何人帮助解决此冲突。
evt.cpp :
unsigned long EVTime::seconds()
{
ptime t(date(1901,Jan,1),time_duration(0,0,0));
time_duration td = utcdatetime - t;
return (unsigned long)td.total_seconds();
}
EVTime::EVTime(unsigned long s)
{
date d(1901,1,1);
ptime p(d,seconds(s));
utcdatetime=p;
}
evt.h :
class EVTime
{
public:
EVTime(unsigned long s);
unsigned long seconds();
ptime utcdatetime;
};
main.cpp :
int main()
{
EVTime t(222l);
cout<<"seconds since 1901: "<<t.seconds()<<endl;
}
错误代码:
evtime.cpp: In constructor ‘EVTime::EVTime(long unsigned int)’:
evtime.cpp:35: error: no matching function for call to ‘EVTime::seconds(long
unsigned int&)’
evtime.cpp:14: note: candidates are: long unsigned int EVTime::seconds()
答案 0 :(得分:0)
您的函数seconds()
不带任何参数,但是您在调用它时将其发送给s
:ptime p(d,seconds(s));
由于您没有匹配功能,因此会导致错误“没有匹配功能,无法调用EVTime::seconds(long unsigned int&)
”。
调用ptime p(d,seconds());
或更改seconds
函数签名以获取参数并对其进行处理。