1. 运算符

2. 自定义数据类型与运算符重载

3. 运算符重载




4. 运算符重载为普通函数
class Complex{
public:
Complex(double r = 0.0, double i = 0.0){
real = r;
imaginary = i;
}
double real; //real part
double imaginary; //imaginary part
};
Complex operator+ (const Complex & a, const Complex & b)
{
return Complex(a.real + b.real, a.imaginary + b.imaginary);
}//"类名(参数表)"就代表一个对象
Complex a(1,2), b(2, 3), c;
c = a + b;//相当于什么?
重载为普通函数时,参数个数为运算符目数
5. 运算符重载为成员函数
class Complex{
public:
Complex(double r = 0.0, double m = 0.0):
real(r), imaginary(m){ } //constructor
Complex operator+(const Complex &); //addition
Complex operator-(const Complex &); //subtraction
private:
double real; //real part
double imaginary; //imaginary part
};
//Overloaded addition operator
Complex Complex::operator+(const Complex & operand2){
return Complex(real + operand2.real,
imaginary + operand2.imaginary);
}
//Overloaded subtraction operator
Complex Complex::operator-(const Complex & operand2){
return Complex(real - operand2.real,
imaginary - operand2.imaginary);
}
int main(){
Complex x, y(4.3, 8.2), z(3.3, 1.1);
x = y + z;
x = y - Z;
return 0;
}
重载为成员函数时,参数个数为运算符数目减一
站在巨人的肩上
【1】北京大学信息技术学院《程序设计实习》
本文详细介绍了在C++中如何使用运算符重载来实现自定义数据类型(如复数)的数学运算,包括将运算符重载为普通函数和成员函数的方法,并提供了具体的代码示例。

368

被折叠的 条评论
为什么被折叠?



