mercredi 22 août 2018

How to avoid Conflict of defined seconds() method and ptime seconds(default) method?

Here unsigned long EVTime::**seconds()**** method is conflicting with **ptime p(d,**seconds(s));, If i change ptime **seconds(s) to minutes/hours then it will be working fine.

If i change that seconds(s) to minutes(s) or hours(s) then only it will work. I am new to C++, anyone please help to resolve this conflict.

code snippets:

*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;
}

Error code: 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()

Aucun commentaire:

Enregistrer un commentaire