C++程序问题,哪位高手帮我改改下面的C++程序问题。
错误提示: error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'struct Set' (or there is no acceptable conversion)
#include <iostream.h>
#define SETSIZE 6
typedef struct Set
{
int m[SETSIZE + 1];
}Set;
void InitSet(Set &s);
void InitSet(Set &s, int a[], int n);
Set operator + (Set &s1, Set &s2);
int main()
{
int x[3] = {1,4,5};
int y[2] = {2,4};
Set s,s1,s2;
InitSet(s1);
InitSet(s2);
InitSet(s1, x, sizeof(x)/sizeof(int));
InitSet(s2, y, sizeof(y)/sizeof(int));
s = s1 + s2; //问题出在这边,但我不知道怎么改
cout<<s<<endl;
return 0;
}
void InitSet(Set &s)
{
for (int i=1; i<=SETSIZE; i++)
{
s.m[i] = 0;
}
}
void InitSet(Set &s, int a[], int n)
{
for (int i=0; i<n; i++)
{
s.m[a[i]] = 1;
}
}
Set operator + (Set &s1, Set &s2)
{
Set stmp;
InitSet(stmp);
for (int i=0; i<SETSIZE+1; i++)
{
stmp.m[i] = s1.m[i] || s2.m[i];
}
return stmp;
}
[解决办法]
Set没有定义operator+和operator<<。