C++ 在类中重载操作符 和 声明全局函数重载操作符 有什么区别?
时间: 2023-05-28 19:06:32 浏览: 204
C++中复制构造函数和重载赋值操作符总结
在类中重载操作符和声明全局函数重载操作符的区别在于作用域和参数。在类中重载操作符时,操作符函数是类的成员函数,可以访问类中的私有成员变量和方法,而且操作符函数的第一个参数是隐式的this指针,代表调用对象,其他参数是显式传递的。而声明全局函数重载操作符时,操作符函数是全局函数,不能访问类中的私有成员变量和方法,而且操作符函数的所有参数都是显式传递的。因此,如果需要访问类中的私有成员变量和方法,应该在类中重载操作符;如果不需要访问类中的私有成员变量和方法,或者需要与其他类或函数一起使用,可以声明全局函数重载操作符。
阅读全文