天天看點

java operator 重載 ==_運算符重載

1、指派運算符=

2、等于運算符==

3、加法運算符+

4、前向自加運算符++

5、後向自加運算符++

6、下标運算符[ ]

7、輸入輸出運算符<< 和 >>

8、轉換運算符( )

9、執行個體代碼

#include

#include

#include

using namespace std;

class A;

ostream& operator<

istream& operator>>(istream &in,A &a);

class A{

private:

int b;

public:

A(){b=10;}

~A(){}

// 加法

A operator+(A&a)

{

A temp;

temp.b=b+a.b;

return temp;

}

// 加等于

A& operator+=(A&a)

{

b+=a.b;

return *this;

}

// 指派

A& operator=(A&a)

{

if (a!=*this)

{

b=a.b;

}

return *this;

}

//相等

bool operator==(A&a)

{

return b==a.b;

}

// 前向++

A operator++()

{

b++;

return *this;

}

// 後向++ 差別前向++,加了個int形參

A operator++(int o)

{

A temp=*this;

b++;

return temp;

}

// 轉換函數-- 形參清單為空,并且無傳回類型

operator int()

{

return b;

}

//利用有元函數(可以通路類的私有成員)重載輸入輸出流

friend ostream& operator<

friend istream& operator>>(istream &in,A &a);

};

//有元函數重載輸出流

ostream& operator<

{

out<

return out;

}

//有元函數重載輸入流

istream& operator>>(istream &in,A &a)

{

in>>a.b;

return in;

}

int main()

{

A a1;

cout<

A a2=a1++;

cout<

a2=++a1;

cout<

a2+=a1;

cout<

return 0;

}