运算符重载<
Operator overloading <
我正在尝试验证第一个对象是否比第二个对象小。我收到错误消息,第一个是areaCircle is not a type
.
bool Circle::operator < (const Circle & pc) const
{
return *this.areaCircle(getradius) < pc.areaCircle(getradius) ? true : false;
}
这是我的面积圆函数
float areaCircle(float radius){return( radius*radius*3.1416);}
.
优先于*
。你想要->
.
return this->areaCircle(getradius) < pc.areaCircle(getradius) ? true : false;
或者干脆省略this->
(这是隐式的)。
此外,由于areaCircle
函数不依赖于对象的状态,因此应考虑将其设置为静态成员函数或自由函数。
相关文章:
- C++重载<<具有typedef'd std::vector
- 重载运算符<<:此运算符函数的参数太多
- 在VS 2012上编译,但不使用Netbeans/MinGW-重载<<
- 重载运算符<<用于模板类.即使使用好友关键字也无法获得私人会员
- C++分离成员流重载<<
- 我已经完成了<<运算符重载,但它'It’不起作用
- 重载运算符<<输出地址而不是数据成员
- 重载运算符<<用于ostream语法
- 重载operator< & lt;作为会员打印
- Operator< & lt;重载隐藏其他
- 重载& lt; & lt;为什么我得到以下错误
- 重载ostream&时转换错误无效;operator< & lt;
- operator< & lt;在c++中为类中的类重载
- 重载& lt; & lt;用于打印自定义异常的操作符
- 重载<<运算符错误C2804:二进制'运算符<<'参数太多
- 上Ostream & lt; & lt;重载的困惑
- 重载& lt; & lt;为了我的班级
- 使用带有重载<<endl上的运算符
- 重载& lt; & lt;使用命名空间std
- operator< & lt;重载、名称空间和模板