你的程序没有错,指针也没有错;
你只是只重载了++,却没有重载“=”,
那么你的c=a+b中,“=”是不能直接用于Array对象的
你只要把“=”重载或者,不用c,直接写(a+b).show都是可以 的;
我相信重载个“=”对你而言不是问题吧,呵呵
Array Array::operator+(Array& d)
{
Array x;
int i;
x.num=0;
for(i=0;i
for(i=0;i
x.A[x.num++]=d.A[i];
return x;
}
函数中返回一个临时对象,而:
c=a+b;
直接复制此临时对象的成员域。。此语句结束之后。。临时对象已经失效。。
而下面你仍然打算访问 c (各成员域实为原临时对象的)的成员。。
不崩溃那才怪了。。
【解决办法】
1、不使用 + 重载运算符函数
2、重载赋值运算符
3、 … 其他方法