????????????д??????????????????????????Щ??????????==??<??>???????????????д?????????????д????? C++ ???????????????????

??????????????????“????” ??????????????????????????????????????б???????C++????????????????name mangling????????????????????????????“????”??????????е??á????????????????????

????????????????????

class CMyCls
{
public:
 bool operator == (const CMyCls& rhs);    // 1.
 
 bool operator == (const CMyCls& rhs) const;   // 2.

 bool operator == (CMyCls& rhs);      // 3.

 bool operator == (CMyCls& rhs) const;    // 4.
};


void f1 (CMyCls& lhs?? const CMyCls& rhs);
{
 lhs == rhs;
}

void f2 (const CMyCls& lhs?? const CMyCls& rhs);
{
 lhs == rhs;
}

void f3 (CMyCls& lhs?? CMyCls& rhs);
{
 lhs == rhs;
}

void f4 (const CMyCls& lhs?? CMyCls& rhs)
{
 lhs == rhs;
}
 


??????? f1 - f4 ???????????????ε???????????f1?????????CMyCls????1 ???????????????f2????? 2 ???????????????f3??f4?????????

?????????????????????????????????????????????У?????????????????磺

class CMyCls
{
public:
 bool operator == (const CMyCls& rhs) const
 {
  // ...
 }
};


bool operator == (const CMyCls& lhs?? const CMyCls& rhs)
{
 // ...
}


void f(const CMyCls& lhs?? const CMyCls& rhs)
{
 lhs == rhs;
}
 


???????????????????????????????? f ???????????????????????????????????????????????????“???”?????????????????????塣??????????????????????????

class CMyCls
{
public:
 bool operator == (const CMyCls& rhs)
 {
  // ...
 }
};


bool operator == (const CMyCls& lhs?? const CMyCls& rhs)
{
 // ...
}


void f1(const CMyCls& lhs?? const CMyCls& rhs)
{
 lhs == rhs;
}


void f2(CMyCls& lhs?? const CMyCls& rhs)
{
 lhs == rhs;
}
 


???????? f1????????????operator ==????f2????? CMyCls????????operator ==??????????д???????????????????????????????const??汾??