我有一个以下列方式定义的结构:
struct struct_name
{
int x;
region y;
bool operator == (const struct_name& other) const;
};
我不明白结构体内的最后一行。它做了什么?
答案 0 :(得分:6)
为此operator==
声明struct
。此运算符将允许您以直观的方式比较struct对象:
struct_name a;
struct_name b;
if( a == b )
// ...
bool operator == (const struct_name& other) const;
^^^^ ^^^^^............^ ^^^^^-- the method is `const` 1
^^^^ ^^^^^............^
^^^^ ^^^^^............^--- the `other` is passed as const reference
^^^^
^^^^-- normally, return true, if `*this` is the same as `other`
1
- 这意味着该方法不会更改任何成员
编辑:请注意,在C++
中,class
和struct
之间的唯一区别是默认访问和默认的继承类型(以@表示) AlokSave) - public
的{{1}}和struct
的{{1}}。
答案 1 :(得分:3)
它声明了一个函数。函数的名称为operator==
。它返回bool
并采用类型为const struct_name&
的单个参数。该行中的最后const
表示它是一个const成员函数,这意味着它不会修改它所调用的struct_name
对象的状态。