I have a structure defined in the following way:
struct struct_name
{
int x;
region y;
bool operator == (const struct_name& other) const;
};
I do not understand the last line in the body of the structure. What does it do?
operator==
为此声明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++
之间的唯一区别是默认访问和默认继承类型(由@AlokSave 指出)- for和for 。class
struct
public
struct
private
class
它声明了一个函数。该函数的名称是operator==
。它返回bool
并接受一个类型为 的参数const struct_name&
。行中的finalconst
表示它是一个 const 成员函数,这意味着它不会修改struct_name
调用它的对象的状态。
这称为运算符重载。