c++运算符重载思维导图
时间: 2023-11-30 10:42:13 浏览: 84
c++ 运算符重载
很抱歉,作为一个语言模型AI,我无法为您提供思维导图。但是我可以为您提供一些关于C++运算符重载的基本知识和示例代码。
C++中的运算符重载是指对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。运算符重载是C++的一个重要特性,它使得程序员可以自定义运算符,从而使得程序更加简洁、易读。
以下是一些C++运算符重载的示例代码:
1.重载"+"运算符
```c++
class Complex {
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
Complex operator+(const Complex& c2) const {
return Complex(real + c2.real, imag + c2.imag);
}
private:
double real;
double imag;
};
int main() {
Complex c1(1.0, 2.0);
Complex c2(3.0, 4.0);
Complex c3 = c1 + c2;
return 0;
}
```
2.重载"<<"运算符
```c++
class Complex {
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
friend ostream& operator<<(ostream& os, const Complex& c) {
os << c.real << "+" << c.imag << "i";
return os;
}
private:
double real;
double imag;
};
int main() {
Complex c(1.0, 2.0);
cout << c << endl;
return 0;
}
```
3.重载"[]"运算符
```c++
class Array {
public:
Array(int size = 0) : size(size) {
data = new int[size];
}
int& operator[](int index) {
return data[index];
}
private:
int* data;
int size;
};
int main() {
Array a(10);
a[0] = 1;
a[1] = 2;
return 0;
}
```
阅读全文