struct c++

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:39:39
=================================================================
struct A
{
int x,y,t,s;
bool operator < (const A o) const { return s<o.s; }
}a[maxc],b;
=================================================================
这其中,bool operator< (const A o) const {return s<o.s;} 是什么意思,怎么理解?

这是运算符的重载问题。bool是返回值的类型,其次operator是操作数的关键字,然后后面紧跟的<号是要重载的符号,后面括号里是参数,(这整个定义像一个函数定义一样),然后里面是返回两个值的比较结果,因为是重载为成员函数,所以只需要一个参数,另外一个参数是由调用的那个A类的确定的,两个const是保证不需要改变的东西没有被改变。比方说 A a,b;a<b;这个后面的比较运算符相当于a.operator<(b),而比较的是二者的s值。最后返回一个布尔值。慢慢你就会懂的。这个多态性的一个方面,即可以为自己的定义的struct定义重载一个已经存在的运算符。这使得出现多态性,即系统会根据调用相应的struct的运算符来调用,如果没有就是默认系统定义的。

重载小于操作符,从而可用小于号比较两个A结构体变量是否前者小于后者,如:A b, c; if (b < c)