0

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?

4

2 回答 2

6

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 。classstructpublicstructprivateclass

于 2013-04-30T14:28:36.373 回答
3

它声明了一个函数。该函数的名称是operator==。它返回bool并接受一个类型为 的参数const struct_name&。行中的finalconst表示它是一个 const 成员函数,这意味着它不会修改struct_name调用它的对象的状态。

这称为运算符重载

于 2013-04-30T14:29:19.157 回答