参数类型不同的重载
#include<iostream>
#include<math.h>
#include<stdlib.h>
class MyClass
{
public:
int plus(int, int);
double plus(double, double);
};
int MyClass::plus(int x, int y)
{
return 0;
}
double MyClass::plus(double x, double y)
{
return 0;
}
void Main()
{
MyClass data;
data.plus(5, 5);
data.plus(5.0, 5.0);
}
构造函数的重载
#include<iostream>
#include<math.h>
#include<stdlib.h>
class MyClass
{
int i;
public:
MyClass();
MyClass(int);
};
MyClass::MyClass()
{
i = 0;
}
MyClass::MyClass(int y)
{
i = y;
}
void Main()
{
MyClass data;
MyClass data2(0);
}
操作符重载 单目操作符重载
#include<iostream>
using namespace std;
class OperaClass
{
int x;
public:
OperaClass();
OperaClass operator++(); // 声明重载的操作符++,返回值类型为OperClass类,这里的++为前置运算
OperaClass operator++(int); // 声明重载的操作符++,返回值类型为OperClass类,这里参数int,表示此++为后置运算
void display();
};
OperaClass::OperaClass()
{
x = 0;
}
void OperaClass::display()
{
cout << "x=" << x << endl;
}
OperaClass OperaClass::operator++()
{
OperaClass A;
++x;
A.x = x;
return A;
}
OperaClass OperaClass::operator++(int)
{
OperaClass A;
x++;
A.x = x;
return A;
}
void main()
{
OperaClass X, Y;
X.display();
++X;
Y = ++X;
Y.display();
//
system("pause");
}
运算符重载 双目操作符重载
#include<iostream>
using namespace std;
class OperClass
{
int x;
public:
OperClass();
OperClass operator+(OperClass); // 声明重载的操作符+,具有两个OperClass类类型的操作数,返回值也是OperClass类类型
};
OperClass::OperClass()
{
x = 0;
}
OperClass OperClass::operator+(OperClass A)
{
OperClass B;
B.x = x + A.x;
return B;
}
void main()
{
OperClass X, Y, Z;
Z = X + Y;
}