【c++】实现运算符的重载

// 实现运算符的重载

#include <iostream>
using namespace std;

class Int
{
	public:
		Int(int i = 0) :m(i)
		{
			cout << "constructed function" << endl;
		}
		~Int()
		{
			cout << "destructor" << endl;
		}
	public:
		Int operator+(const Int &d);
		Int operator-(const Int &d);
		Int operator*(const Int &d);
		Int operator/(const Int &d);
		Int operator|(const Int &d);
		Int operator&(const Int &d);
		Int operator^(const Int &d);
		Int operator~();
		Int operator++();
		Int operator++(int);
		Int operator--();
		Int operator--(int);
		void print();
	private:
		int m;
};

Int Int ::operator+(const Int &d)
{
	return Int(m + d.m);
}

Int Int::operator-(const Int &d)
{
	return Int(m - d.m);
}

Int Int::operator*(const Int &d)
{
	return Int(m * d.m);
}

Int Int::operator/(const Int &d)
{
	return Int(m / d.m);
}

Int Int::operator|(const Int &d)
{
	return Int(m | d.m);
}

Int Int::operator&(const Int &d)
{
	return Int(m & d.m);
}

Int Int::operator^(const Int &d)
{
	return Int(m ^ d.m);
}

Int Int::operator~()
{
	return Int(~m);
}

Int Int::operator++()
{
	return Int(++m);
}

//后置++
Int Int::operator++(int)
{
	return Int(m++);
}

Int Int::operator--()
{
	return Int(--m);
}

//后置--
Int Int::operator--(int)
{
	return Int(m--);
}

void Int::print()
{
	cout << m << endl;
}


int main()
{
	Int i(2);
	i = i + 1;
	i.print();
	i = i - 1;
	i.print();
	
	Int a, b(3), c(1);
	a = b + c;
	a.print();
	a = b - c;
	a.print();
	a = b * c;
	a.print();
	a = b / c;
	a.print();
	a = b | c;
	a.print();
	a = b & c;
	a.print();
	a = b ^ c;
	a.print();
	a = ~b;
	a.print();
	a = ++b; 
	a.print();//4
	b.print();//4
	a = b++;
	a.print();//4
	b.print();//5
	a = --b;
	a.print();//4
	b.print();//4
	a = b--;
	a.print();//4
	b.print();//3
	return 0;
}// 实现运算符的重载

#include <iostream>
using namespace std;

class Int
{
	public:
		Int(int i = 0) :m(i)
		{
			cout << "constructed function" << endl;
		}
		~Int()
		{
			cout << "destructor" << endl;
		}
	public:
		Int operator+(const Int &d);
		Int operator-(const Int &d);
		Int operator*(const Int &d);
		Int operator/(const Int &d);
		Int operator|(const Int &d);
		Int operator&(const Int &d);
		Int operator^(const Int &d);
		Int operator~();
		Int operator++();
		Int operator++(int);
		Int operator--();
		Int operator--(int);
		void print();
	private:
		int m;
};

Int Int ::operator+(const Int &d)
{
	return Int(m + d.m);
}

Int Int::operator-(const Int &d)
{
	return Int(m - d.m);
}

Int Int::operator*(const Int &d)
{
	return Int(m * d.m);
}

Int Int::operator/(const Int &d)
{
	return Int(m / d.m);
}

Int Int::operator|(const Int &d)
{
	return Int(m | d.m);
}

Int Int::operator&(const Int &d)
{
	return Int(m & d.m);
}

Int Int::operator^(const Int &d)
{
	return Int(m ^ d.m);
}

Int Int::operator~()
{
	return Int(~m);
}

Int Int::operator++()
{
	return Int(++m);
}

//后置++
Int Int::operator++(int)
{
	return Int(m++);
}

Int Int::operator--()
{
	return Int(--m);
}

//后置--
Int Int::operator--(int)
{
	return Int(m--);
}

void Int::print()
{
	cout << m << endl;
}


int main()
{
	Int i(2);
	i = i + 1;
	i.print();
	i = i - 1;
	i.print();
	
	Int a, b(3), c(1);
	a = b + c;
	a.print();
	a = b - c;
	a.print();
	a = b * c;
	a.print();
	a = b / c;
	a.print();
	a = b | c;
	a.print();
	a = b & c;
	a.print();
	a = b ^ c;
	a.print();
	a = ~b;
	a.print();
	a = ++b; 
	a.print();//4
	b.print();//4
	a = b++;
	a.print();//4
	b.print();//5
	a = --b;
	a.print();//4
	b.print();//4
	a = b--;
	a.print();//4
	b.print();//3
	return 0;
}

<img src="https://img-blog.csdn.net/20150508161939603?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhcWlhbjU1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

<img src="https://img-blog.csdn.net/20150508161752132?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhcWlhbjU1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值