我正在为学校做一个项目,我需要创建一个bigint类,并且它迄今有4个需求。运算符==超载
1.)写一个写一个bigint的方法,每行最多打印80个数字。
2.)编写一个方法来比较两个bigint是否相等。它应该返回一个布尔值。
3.)编写一个方法来初始化一个bigint为你提供的int值[0,maxint]。
4.)编写一个方法来初始化bigint到char []。
我认为我有2和3是正确的,但我在比较两个bigint时遇到了麻烦,我希望有人能够在正确的方向上引导我如何将打印限制为每行80个数字。
这里是我到目前为止的代码:
.h文件中
class bigint
{
public:
bigint(); //default constructor
bool operator==(const bigint& num1);
bigint(int n);
bigint(char new_digits[]);
private:
int digit[MAX];
int digitb[MAX];
};
这里是实现文件:
#include "bigint.h"
#include<cassert>
#include<iostream>
//default constructor
bigint::bigint()
{
for (int i = 0; i < MAX; i++)
{
digit[i] = 0;
}
}
bigint::bigint(int n)
{
int i = 0;
while(n > 0)
{
digit[i] = n % 10;
n = n /10;
++i;
break;
}
for(i; i< MAX; ++i)
digit[i] = 0;
}
bool bigint::operator==(const bigint& num1)
{
for(int i = 0; i < MAX; i++)
{
if (num1.digit == num1.digit)
return true;
}
return false;
}
bigint::bigint(char new_digit[])
{
int i = 0;
//Reads the characters of numbers until it is ended by the null symbol
while(new_digit[i] != '\0')
++i;
--i;
//Converts the characters into int values and puts them in the digit array
while(i >= 0)
{
digit[i] = new_digit[i] - '0';
--i;
}
}
}
int main()
{
#include<iostream>
using namespace std;
using PROJECT_1::bigint;
bigint a(0);
assert(a == 0);
}
顺便说一句,我不是要得到答案我我刚刚在一小时前开始的作业。我一整天都在努力工作,最后我投入并寻求帮助。
A)请正确格式化您的代码,而不是道歉。编辑并不难以掌握B)这真的不是一个“为我工作”的网站;让你的帖子可读后,解释你已经尝试了什么,或者至少说明你目前的思路。如果提供了这两件事情,人们更愿意提供帮助。 – 2012-01-30 06:19:20
哦,而operator ==总是返回true。问题在于: if(num1.digit == num1.digit) 还有其他问题 - 我的第一个问题是:“数字”数组的表示是什么?更具体地说,“digit [0]”是最重要的数字还是最不重要的数字? – 2012-01-30 06:34:44