#include <iostream>
using namespace std;
//没有temp变量的都可以加引用,有temp的,如果加引用必须加static
//如果是可以连用(如=),不改变其意思必须加引用
//istream重载时,不能加const
//类型转换重载时,不能加返回值
//输入输出重载必须为友元
class A
{
int num;
int *p;
public:
A(int aa) : num(aa)
{
p = new int[num];
}
A operator+(const A &a)
{
A temp(a);
temp.num += this->num;
return temp;
}
A &operator=(const A &a)
{
this->num = a.num;
return *this;
}
friend istream &operator>>(istream &is, A &a)
{
is >> a.num;
return is;
}
friend ostream &operator<<(ostream &os, const A &a)
{
os << a.num;
return os;
}
int &operator[](int a)
{
return *(p + a);
}
operator double()
{
return double(num);
}
A operator++(int)
{
A temp(*this);
this->num++;
return temp;
}
A operator++()
{
this->num++;
return *this;
}
bool operator==(const A &a)
{
return a.num == this->num;
}
A &operator+=(const A &a)
{
this->num += a.num;
return *this;
}
};
int main()
{
}
OOP-运算符重载原型
最新推荐文章于 2023-12-15 21:45:29 发布