#include <iostream>
using namespace std;
class myinteger{
friend ostream& operator<<(ostream &out,myinteger myint);//重构<<运算符
public:
myinteger()
{
m_Num = 0;
}
myinteger &operator++() //重构++i,++前缀运算符
{
m_Num++;
return *this;
}
myinteger operator++(int) //重构i++,++后缀运算符
{
myinteger temp=*this;
m_Num++;
return temp;
}
private:
int m_Num;
};
ostream & operator<<(ostream &out,myinteger myint) //重构myint类的<<具体实现
{
cout << myint.m_Num;
return cout;
}
void test1()
{
myinteger myint;
cout << myint++<<endl;
cout << ++myint<<endl ;
cout << myint++<<endl;
}
int main()
{
test1();
system("pause");
}
输出结果:
#include <iostream>
using namespace std;
class person{
friend void operator<<(ostream &out,person &p); //重载person类型的 <<运算符
public:
person operator+(person &p)
{
person temp;
temp.a=this->a+p.a;
temp.b=this->b+p.b;
return temp;
}
int a;
int b;
};
person operator+(person &p1,person &p2)
{
person temp;
temp.a=p1.a+p2.a;
temp.b=p1.b+p2.b;
return temp;
}
void operator<<(ostream &out,person &p)
{
out <<"m_a="<<p.a<<"m_b="<<p.b<<endl;
}
void test()
{
//ostream cout;
person p1;
p1.a=10;
p1.b=10;
person p2;
p2.a=10;
p2.b=10;
person p3=p1+p2;
cout <<"p3.a="<<p3.a<<endl;
cout <<"p3.b="<<p3.a<<endl;
person p;
p.a=10;
p.b=10;
cout <<p;
}
int main()
{
test();
test1();
system("pause");
}
输出结果: