标题:C++运算符重载求两个集合的并集,使用new和delete运行出错
只看楼主
guangbin
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-1
结帖率:100%
 问题点数:0 回复次数:1 
C++运算符重载求两个集合的并集,使用new和delete运行出错
//以下是程序代码
//请在这段代码的基础上修改,如果您有好的代码,请务必分享
#include <iostream>
using namespace std;
const int SIZE=100;
class Set
{
private:
    int *element;
    int count;
public:
    Set();
    void Addmember(int *p,int n);
    bool Ismember(int n);
    Set operator+(Set &s);
    void Show();
    int Getcount();
    ~Set();
};

Set::Set()
{
    element=new int [SIZE];
    count=0;
}

Set::~Set()
{
    delete[] element;

}
void Set::Addmember(int *p,int n)
{
    element=p;
    count=n;
}
bool Set::Ismember(int n)
{
    for(int i=0;i<count;i++)
        if(element[i]==n)
            return true;
    return false;
}

Set Set::operator+ (Set &s)
{
    Set A;
    for(int i=0;i<this->count;i++)
        A.element[i]=this->element[i];
    for(int j=0;j<s.count;j++)
        if(!this->Ismember(s.element[j]))
            A.element[i++]=s.element[j];
    A.count=i;
//    A.Show();
    return A;
}
void Set::Show()
{
    cout<<"{ ";
    for(int i=0;i<count-1;i++)
        cout<<element[i]<<" , ";
    cout<<element[i]<<" }"<<endl;
}
int Set::Getcount()
{
    return count;
}
int main ()
{
    int a[6]={1,2,3,4,5,6};
    int b[5]={2,5,1,7,0};

    Set set1,set2,set3;

    set1.Addmember(a,6);
    set2.Addmember(b,5);

    cout<<"set1=";
    set1.Show();
    cout<<"set2=";
    set2.Show();

    set3=set1+set2;
    cout<<"set3=";
    set3.Show();

    return 0;
}
搜索更多相关主题的帖子: class private element include public 
2011-04-03 23:08
guangbin
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-1
得分:0 
在线急等!
2011-04-03 23:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-335592-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.174402 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved