一个运行错误的程序

现在错误已解决,把错了的程序贴在这里。以后深度研究。。

#include <iostream>

using namespace std;
class Set
{
private:
    int a[100];
    int num;
public:
    Set();
    void add(const int aa);
    void del(const int aa);
    Set& operator +(Set& right);
    Set& operator *(Set& right);
    Set& operator =(Set& right);
    Set& operator -=(Set& right);
    void print();
};
Set::Set()
{
    for(int i = 0; i<100; i++)
        a[i] = 0;
    num = 0;
}
void Set::print()
{
    for(int i = 0; i<num; i++)
        cout<<a[i]<<"    ";
}
Set& Set::operator -=(Set& right)
{
    int i,j;
    for(i = 0; i<right.num; i++)
        for(j = 0; j<num; j++)
        {
            if(a[j] == right.a[i] )
            {
                num--;
                for(int m = j; m<num; m++)
                    a[m] = a[m+1];
            }
        }
    return *this;
}
Set& Set::operator =(Set& right)
{
    int i = 0;
    num = right.num;
    for(i = 0; i<num; i++)
        a[i] = right.a[i];
    return *this;
}
Set& Set::operator *(Set& right)
{
    Set result;
    int i,j;
    result.num = num+right.num;
    for( i = 0; i<num; i++)
        result.a[i] = a[i];
    for( j = 0; j<right.num; j++,i++)
        result.add(right.a[j]);
    return result;
}
Set& Set::operator +(Set& right)
{
    Set re;
    int i,j;
    for(i = 0; i<num; i++)
        re.a[i] = a[i];
    for(j = 0; j<right.num; j++,i++)
        re.a[i] = right.a[j];
        re.num = num+right.num;
    return re;
}
void Set::del(const int aa)
{


    for(int i = 0; i<num; i++)
        if(a[i] == aa)
        {
            for(int j = i; j<num; j++)
                a[j] = a[j+1];
        }


}
void Set::add(const int aa)
{
    bool flag = 1;

    if(num == 0)
    {
        a[num] = aa;
        num++;
    }
    else
    {
        for(int i = 0; i<num; i++)
        {
            if(a[i]==aa)
                flag = 0;
        }
            if(flag)
            {
                a[num] = aa;
                num++;
            }

    }


}
int main()
{
    int i;
    Set a,b;
    Set c;
    for(i = 0; i<50; i++)
    {
        a.add(i);
    }
    a.print();
    for(i = 20; i<50; i++)
    {
        b.add(i);
    }
    b.print();
    c = a+b;
    c.print();
    return 0;
}

  

posted on 2013-03-31 21:33  Phoenix_  阅读(191)  评论(0)    收藏  举报