Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这段代码不能正常工作???我的意思是,为什么我运行它时它没有显示任何内容?_C++_Overloading - Fatal编程技术网

C++ 为什么这段代码不能正常工作???我的意思是,为什么我运行它时它没有显示任何内容?

C++ 为什么这段代码不能正常工作???我的意思是,为什么我运行它时它没有显示任何内容?,c++,overloading,C++,Overloading,重载方法有什么问题吗?我真的认为它应该有效,但它没有 //重载运算符== BIGINT& BIGINT::operator==(const BIGINT& bn) { for (int i = 0;i < big_number.size();i++) { big_number[i] == bn.big_number[i]; } return *this; } //重载运算符这是对计算资源的浪费: for (int i = 0

重载方法有什么问题吗?我真的认为它应该有效,但它没有

//重载运算符==

BIGINT& BIGINT::operator==(const BIGINT& bn)
{
    for (int i = 0;i < big_number.size();i++)
    {
        big_number[i] == bn.big_number[i];
    }
    return *this;
}

//重载运算符这是对计算资源的浪费:

for (int i = 0;i < big_number.size();i++)
{
    big_number[i] == bn.big_number[i];
}
return *this;
循环在找到第一组不相等的插槽时终止。搜索数组的其余部分没有意义。只要有一个不等式就可以证明等式是错误的

编辑1:容器的长度是否相等 要使容器相等,它们必须具有相同的大小或相同的元素数

因此,等式函数现在变为:

bool BIGINT::operator==(const BIGINT& bn)
{
    if (big_number.size() != bn.big_number.size())
    {
        return false;
    }
    for (int i = 0;i < big_number.size();i++)
    {
        if (big_number[i] != bn.big_number[i])
        {
            return false;
        }
    }
    return true;
}

哦,天哪,文字之墙。当您在调试器中通过它时发生了什么?请创建一个调试器并将您的问题包含在内。这是许多不相关的代码。调试器。使用调试器。或者使用古老的打印语句调试艺术。具体来说,哪种语句不起作用?实际价值是多少?期望值是多少?复制问题的输入是什么?我认为屏幕上应该显示125,而不是-@托马斯马修斯
BIGINT& BIGINT::operator+=(const BIGINT& bn) 
{
    int size;
    int k = 0;
    if (bn.big_number.size()>big_number.size()) size = big_number.size();
    else size = bn.big_number.size();
    for (int i = size - 1;i > 0;i--)
    {
        if (k)
        {
            if (big_number[i] + bn.big_number[i]>9)
            {
                big_number[i] = big_number[i] + bn.big_number[i] - 10 + 1;
                k = 1;
            }
            else
            {
                big_number[i] = big_number[i] + bn.big_number[i] + 1;
                k = 0;
            }
        }
        else
        {
            if (big_number[i] + bn.big_number[i]>9)
            {
                big_number[i] = big_number[i] + bn.big_number[i] - 10;
                k = 1;
            }
            else
            {
                big_number[i] = big_number[i] + bn.big_number[i];
                k = 0;
            }
        }

    }
    return *this;
}
BIGINT& BIGINT::operator==(const BIGINT& bn)
{
    for (int i = 0;i < big_number.size();i++)
    {
        big_number[i] == bn.big_number[i];
    }
    return *this;
}
ostream& operator<<(ostream& out, const BIGINT& bn)
{
    for (int i = 0;i < bn.big_number.size();i++)
    {
        out << bn.big_number[i];
    }
    return out;
}
int main()
{
    BIGINT a(123);
    BIGINT b(2);
    BIGINT c;
    c = a + b;
    cout << c << endl;
    system("pause");
    return 0;
}
for (int i = 0;i < big_number.size();i++)
{
    big_number[i] == bn.big_number[i];
}
return *this;
bool BIGINT::operator==(const BIGINT& bn)
{
    for (int i = 0;i < big_number.size();i++)
    {
        if (big_number[i] != bn.big_number[i])
        {
            return false;
        }
    }
    return true;
}
bool BIGINT::operator==(const BIGINT& bn)
{
    if (big_number.size() != bn.big_number.size())
    {
        return false;
    }
    for (int i = 0;i < big_number.size();i++)
    {
        if (big_number[i] != bn.big_number[i])
        {
            return false;
        }
    }
    return true;
}