Перегрузка <<
От: RASH  
Дата: 24.10.10 16:32
Оценка:
Доброго времени суток всем! Возникла проблема:
Имеется класс:


class Matrix
{
    public: int **massive;    //указатель на двумерный массив
            unsigned SIZE_Y, SIZE_X;
            //Конструктор
            Matrix(unsigned sizex, unsigned sizey)
            //Размеры массива
            unsigned GetLength(int x)
            //Нулл Массива
            void zeros()
            //Вывод массива на экран
            friend ostream &operator<<(ostream &, Matrix );//<-соответственно проблема тут
            //Еденичная матрица
            void intity()
            //Деструктор
                        ~Matrix()
};

ostream &operator<<(ostream &output, Matrix t)
{
    for(unsigned i=0;i<t.GetLength(0);i++)
    {
        for(unsigned j=0;j<t.GetLength(1);j++)
            output<<" "<<t.massive[i][j];
        output<<endl;
    }
    return output;
};

int main()
{
        Matrix *Mass=new Matrix(5,5);
    Mass->intity();
    cout<<*Mass;//Первый массив выводится на экран нормально
    cout<<endl;//После этого вызывается деструктор 0_о
    Mass->zeros();//Соответственно не выполняется далее код
    cout<<*Mass<<endl;
    delete Mass;
    return 0;
}



Прошу помочь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.