重载小于c+中的运算符+;出错了 我有C++程序来重载小于运算符和一个错误。 应为类型名称。 我想学习第12节课 bool operator <(abc x,abc y) { return(x.a<y.a); } bool操作符

重载小于c+中的运算符+;出错了 我有C++程序来重载小于运算符和一个错误。 应为类型名称。 我想学习第12节课 bool operator <(abc x,abc y) { return(x.a<y.a); } bool操作符,c++,overloading,operator-keyword,C++,Overloading,Operator Keyword,问题在于,当您定义操作符时,问题在于当您定义操作符时,您将操作符定义为成员函数。在这种情况下,运算符的左操作数是this 正确的定义如下所示 bool operator <( const abc &rhs ) const { return ( a < rhs.a ); } bool操作符您将该操作符定义为成员函数。在这种情况下,运算符的左操作数是this 正确的定义如下所示 bool operator <( const abc &rhs ) cons

问题在于,当您定义
操作符时,问题在于当您定义
操作符时,您将操作符定义为成员函数。在这种情况下,运算符的左操作数是this

正确的定义如下所示

bool operator <( const abc &rhs ) const
{
     return ( a < rhs.a );
}

bool操作符您将该操作符定义为成员函数。在这种情况下,运算符的左操作数是this

正确的定义如下所示

bool operator <( const abc &rhs ) const
{
     return ( a < rhs.a );
}

bool操作符操作符<函数应该只接受一个参数。试试这个:

  bool operator <(abc& other)
   {
     return(a < other.a );
   }

bool操作符操作符<函数应该只接受一个参数。试试这个:

  bool operator <(abc& other)
   {
     return(a < other.a );
   }

bool运算符您能显示错误吗?并可能提供一个?请努力正确格式化您的代码-也请不要使用
void main
iostream.h
?真正地在第一个C++标准发布后的16年里,这是不正确的。你能显示错误吗?并可能提供一个?请努力正确格式化您的代码-也请不要使用
void main
iostream.h
?真正地自从第一个C++标准发布以来的16年里,这一直是错误的。
  bool operator <(abc& other)
   {
     return(a < other.a );
   }