Hỏi về phép gán = class

e có bài này ạ:

#include <iostream>

using namespace std;
class BigInt {
    string value;
    int sign;
public:
    BigInt();
    friend ostream& operator<< (ostream& , const BigInt& );
    BigInt& operator=(const char*);
    BigInt& operator=(const BigInt& );
};
BigInt::BigInt()
{
    value="";
    sign=0;
}
ostream& operator<<(ostream& os, const BigInt& num)
{
    if (num.value=="")
        os << num.sign;
    else
        os << num.value;
    return os;
}
BigInt& BigInt::operator =(const BigInt& num)
{
    this->sign=num.sign;
    this->value=num.value;
    return *this;
}

BigInt& BigInt::operator=(const char *num)
{
    value=num;
    sign=0;
    return *this;
}
int main()
{
    BigInt num1="-1234";
    cout << num1 << endl;
    BigInt num2 = num1;
    cout << num2.value << " " << num2.sign;
} 

khi chạy thì không gán được num2=num1, mn giúp mk với ạ.

Có báo lỗi gì không bạn?

3 Likes

không báo lỗi gì ạ, 1 chỗ mk chạy thì ra 0 còn 1 chỗ thì ra số lạ lạ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?