C++中运算符的底层是不是用函数实现的?
在 C++ 中,运算符重载的本质是通过函数来实现的。
当你对自定义类型使用运算符时,编译器会将其转换为相应的函数调用。
例如,假设你有一个 Complex
类,并重载了加法运算符 +
:
class Complex {
public:
double real, imag;
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) { }
Complex operator + (const Complex & c);
};
在使用时,表达式 a + b
会被编译器转换为 a.operator+(b)
,即调用 operator+
函数。
因此,运算符重载的实现本质上是通过函数来完成的。