关于c++中结构体指针的运算符重载问题

2025-02-28 00:43:29
推荐回答(1个)
回答1:

运算符重载的条件是,必须存在至少一个自定义的类型。
而指针实际上就是地址,即一个32位的整数值,它们的大小是直接进行数值的比较的
如果想比较2个指针所指的对象的大小,可以对它们取 * 操作,再调用 operator < 即可。

另外,楼主写的 operator < 重载,参数应设定为 const node &, 即
bool operator < (const node &a, const node &b)
{
...
}
按LZ的方式去写的话,每次调用 < 运算符时都会存在对象的拷贝。

再者,结构体里面的成员,在默认情况下均是 public 的权限,不需要将 bool operator < 设置为结构体的友员函数,可以直接通过对象访问成员变量。