BigNumber BigNumber:: operator ++()
{
return (this->data_+this->data_);
}
اپراتور ++ که نباید به این شکل کار کنه این جوری باید باشه
BigNumber BigNumber:: operator ++()
{
return (this->data_+1);
}
و اکثر operator هایی که نوشتی const لازم دارن .
مثلا
friend BigNumber operator+(BigNumber Num1 ,const BigNumber& Num2);
friend BigNumber operator*(BigNumber Num1 ,const BigNumber& Num2);
ضمنا برای نوشتن این برنامه ساده ترین و بدون باگ ترین راه اینه که + رو بنویسی کامل تست کنی بعد تمام operator ها رو برحسب اون بنویسی مثلا تفریق میشه
a+ (-b)
تقسیم میشه این :
http://www.7khatcode.com/2711/%D8%A7%D8%B4%DA%A9%D8%A7%D9%84-%D8%AF%D8%B1-%D8%A7%D9%BE%D8%B1%D8%A7%D8%AA%D9%88%D8%B1
ادیت
داخل operator+= اون Num1 رو به این شکل تعریف کن
string& Num1 = this->data_;
++ رو هم به این شکل بنویس نیاز به One نداری
BigNumber& BigNumber:: operator ++()
{
this->operator +=(BigNumber("1"));
return *this;
}
این 3 خطی هم که comment کردم کد هاشو از تو فایل cpp و .h پاک کن
class BigNumber
{
private:
string data_;
public:
BigNumber(const string& other );
// BigNumber(string other);
BigNumber(const int other);
BigNumber( BigNumber const &other );
// ~BigNumber();
const string GetNum();
BigNumber& operator+=( const BigNumber& other );
BigNumber operator++();
BigNumber& operator-=( const BigNumber& other );
BigNumber& operator*=( const BigNumber& other );
BigNumber& operator/=( const BigNumber& other );
BigNumber& operator=( const BigNumber& other);
int operator[](const int i);
string& operator()(const int i,const int j);
void Tipper (string & Num);
string sum( string Num1 , string Num2);
// const BigNumber& One();
friend ostream& operator<<(ostream& os,const BigNumber& number);
friend BigNumber operator+(BigNumber Num1 , const BigNumber& Num2);
friend BigNumber operator*(BigNumber Num1 , const BigNumber& Num2);
friend BigNumber operator-(BigNumber Num1 , const BigNumber& Num2);
};