C++中各种运算符怎么重载举出代码实例
时间: 2024-03-01 19:49:46 浏览: 23
好的,我来举几个例子,演示如何重载C++中的运算符。
1. 重载 "+" 运算符:
```c++
#include<iostream>
using namespace std;
class Complex{
public:
double real;
double imag;
Complex operator+(const Complex& c) const{
Complex result;
result.real = real + c.real;
result.imag = imag + c.imag;
return result;
}
};
int main(){
Complex a, b, c;
a.real = 1.0;
a.imag = 2.0;
b.real = 2.0;
b.imag = 3.0;
c = a + b;
cout<<"c.real = "<<c.real<<", c.imag = "<<c.imag<<endl;
return 0;
}
```
2. 重载 "[]" 运算符:
```c++
#include<iostream>
using namespace std;
class Array{
private:
int data[10];
public:
int operator[](int index) const{
if(index < 0 || index >= 10){
cout<<"数组下标越界"<<endl;
return 0;
}
return data[index];
}
int& operator[](int index){
if(index < 0 || index >= 10){
cout<<"数组下标越界"<<endl;
static int dummy;
return dummy;
}
return data[index];
}
};
int main(){
Array array;
int i;
for(i=0;i<10;i++){
array[i] = i;
}
for(i=0;i<12;i++){
cout<<array[i]<<" ";
}
cout<<endl;
return 0;
}
```
3. 重载 "()" 运算符:
```c++
#include<iostream>
using namespace std;
class Function{
public:
int operator()(int x, int y, int z){
return x+y+z;
}
};
int main(){
Function func;
cout<<func(1, 2, 3)<<endl;
return 0;
}
```
这些例子仅仅是重载运算符的冰山一角,具体的运算符重载方式和使用场景还需要根据实际情况进行选择和修改。