它和bool operator(const node&)有什么区别
时间: 2023-12-06 11:05:19 浏览: 258
牛客 – 奇怪的背包问题增加了(贪心)
friend bool operator和bool operator(const node&)都是运算符重载的方法,但是它们有一些区别。
1. 参数类型不同: friend bool operator是在类外部定义的重载运算符,它通常接受两个参数,其中至少一个是类的对象。而bool operator(const node&)是在类内部定义的成员函数,它只接受一个参数,即该类的对象。
2. 成员访问权限不同: friend bool operator可以访问类的私有成员,因为它在类中被声明为友元函数。而bool operator(const node&)是类的成员函数,可以直接访问类的私有成员。
3. 调用方式不同: 对于friend bool operator,它可以通过对象之间直接调用运算符进行操作,例如 obj1 + obj2。而bool operator(const node&)通常使用对象调用运算符,例如 obj1.operator+(obj2)。
总的来说,friend bool operator更加灵活,可以在类外部实现对运算符的重载,并且可以访问类的私有成员。而bool operator(const node&)是在类内部实现的成员函数,只能通过对象调用。具体使用哪个方法取决于你的需求和设计。
阅读全文