小弟我这个重载输出流有有关问题,请大家帮小弟我一下。多谢

我这个重载输出流有问题,请大家帮我一下。谢谢。
C/C++ code

#include <iostream.h> 
class MyArray
{
private:
    int *arr;  //用于存放动态分配的数组内存首地址
    int size;  //数组大小
public:
    MyArray(int sz=50);
    MyArray(int a[],int sz);//由一个内置类型的数组初始化
    MyArray(const MyArray &A);//拷贝构造函数
    ~MyArray(void);//析构函数,注意释放空间
    friend ostream& operator << (ostream& output,MyArray& A);//重载<<,输出数组
    
};
MyArray::MyArray(int sz)
{
    size=sz;
}
MyArray::MyArray(int a[],int sz) //由一个内置类型的数组初始化
{   
    arr=new int[sz];  
    for (int i=0; i<sz; ++i)
        *(arr+i)=*(a+i);   //将数组arr中元素逐个赋值 
    //arr[i]=i+1;  //将数组arr中元素逐个赋值 
}
MyArray::MyArray(const MyArray &A) //拷贝构造函数
{
    arr=new int[A.size];
    for (int i=0; i<A.size; ++i)  
        *(arr+i)=*(A.arr+i);   //将数组arr中元素逐个赋值
    size=A.size;
}
MyArray::~MyArray(void) //析构函数,注意释放空间
{
    if (!arr) // 等同于if (arr_point!=NULL)    
        delete [] arr; //释放在类的生命周期中分配的,arr_point指向的空间   
    
    
}

ostream& operator << (ostream& output,MyArray& A)  //重载<<,输出数组
{
    for(int i=0;i<A.size;++i)
        output<<*(A.arr+i)<<"  "<<endl;   
    return output;  
}

int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int b[10]={4,5,6,7,8,9,10,11,12,13};
    MyArray arr1(a,10);
    MyArray arr2(b,10);
    MyArray arr3(10);
    cout<<arr3;
    return 0;
} 



------解决方案--------------------
你这个不是重载有问题,是构造函数有问题。给你修改了。
C/C++ code
MyArray::MyArray(int sz)
{
    arr = new int[sz];
    size=sz;
    for(int i=0;i<sz;i++)
        arr[i]=0;
}

------解决方案--------------------
楼上正解。。。。