首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-05-21 
我这个重载输出流有问题,请大家帮我一下。谢谢。C/C++ code#include iostream.h class MyArray{private:in

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

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;}
[解决办法]
楼上正解。。。。

热点排行