十进制转换为任意进制及操作符重载

2014-11-23 21:58:35 来源: 作者: 浏览: 4
#include
#include
#include
using namespace std;
using std::iterator;
///
///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。
///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<)
///
class TenToAny
{
	vector value;
	long long _n;
	long long _x;
public:
	TenToAny():_n(10),_x(0)
	{	

	}
	void Switch()
	{
		try
		{
			int x=_x, n=_n;
			char flag=' ';
			if(x>LONG_MAX||x=10)
					remain = 'A'+ remain % 10;
				else 
					remain +='0';
				value.push_back(remain);
			}
			vector::reverse_iterator v= value.rbegin();
			while(*v=='0')
				value.pop_back();
			if(flag=='-')
				value.push_back(flag);
		}
		catch(char *e)
		{
			cout<Switch();
		return *this;
	}
	TenToAny &operator ++(int)//后置++
	{
		TenToAny *temp=new TenToAny(this->_n,this->_x);
		_x++;
		value.clear();
		this->Switch();
		return *temp;
	}
	friend ostream &operator <<(ostream &out,TenToAny num);
	

};
ostream &operator <<(ostream &out,TenToAny num)
{
	vector value =num.value;
	vector::reverse_iterator v= value.rbegin();
	for(;v!=value.rend();v++)
	{
		out<<*v;
	}
	return out;
}
int main()
{
	TenToAny num(19,111);
	TenToAny copy(19,222);
	TenToAny sum;
	sum =num+copy;
	cout< 
 
 

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: