c++ - Comparing two objects of the same class -
i trying overload == operator in c++. 
#include <string>  using namespace std;  namespace date_independent {     class clock     {         public:             int clockpair[2] = {0,0};             operator string() const             {                 string hourstring;                 string minstring;                 if(clockpair[0]<10)                 {                     hourstring = "0"+to_string(clockpair[0]);                 }                 else                 {                     hourstring = to_string(clockpair[0]);                 }                 if(clockpair[1]<10)                 {                     minstring  = "0"+to_string(clockpair[1]);                 }                 else                 {                     minstring = to_string(clockpair[1]);                 }                 return hourstring+":"+minstring;             };             bool operator ==(const clock&clockone, const clock&clocktwo) const             {                 return string(clockone)==string(clocktwo);             };     }; };   there more code have included, important part. want == operator can compare 2 objects of class clock. e.g., object1==object2. there can me?
a binary operator == can overloaded either member function single parameter (this being left-hand operand, , parameter being right-hand one), or non-member function 2 parameters 2 operands.
so either
- move operator declaration outside class declaration (moving definition source file, or declaring 
inlineif keep definition in header); or - add 
frienddefinition, declares non-member in surrounding namespace; or - remove first argument member function, using 
thisinstead. 
as member, like
bool operator==(const const & clocktwo) const {     return string(*this) == string(clocktwo); }   you might want compare 2 integer values directly save expense of making strings. should remove rogue ; after function , namespace definitions, although modern compilers shouldn't object presence.
Comments
Post a Comment