Помогите с перегрузкой операторов ввода и вывода. Ошибок при компилировании не выдает, но ввести матрицу не удается.
| Код |
#include "stdafx.h" #include "iostream"
using namespace std;
class Matrix { int n,m; //размеры матрицы int **a; public: Matrix() { n=0; m=0; a=NULL; }
//конструктор Matrix (int v, int z) {n=v; m=z; a=new int*[n]; for (int i=0;i<n;i++) { a[i]=new int[n]; for (int j=0; j<n;j++) {cout<<"vvedite elementi matrici "; for(i=0;i<n;i++) for(j=0;j<m;j++) {cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];} cout<<endl;}}
//деструктор ~Matrix() {for(int i=0;i<n;i++) delete a[i];// освобождение памяти delete a;}
friend ostream& operator << (ostream & cout,const Matrix &B); friend istream& operator >> (istream & cin,Matrix &B);
};
ostream& operator<<(ostream &cout,const Matrix &x) { for(int i=0;i<x.n;i++) { for(int j=0;j<x.m;j++) cout<<x.a[i][j]<<" "; cout<<endl;} cout<<x.m<<" "<<x.n; return cout;} }
istream &operator>>(istream &cin, Matrix &B) { //cout<<"n="<<"m="; cin>>B.n>>B.m; delete []B.a; B.a=new int*[B.n]; for(int i=0;i<=B.n;i++) {B.a[i]=new int[B.m] ; for (int j=0;j=B.m;j++) { cin >> B.a[i][j]; }} return cin;}
int _tmain(int argc, _TCHAR* argv[]) { Matrix e,y; int n,m; cout<<"Vvedite razmer "<<"n="; cin>>n; cout<<"m="; cin>>m; cout << "vvedite matrix e:"; cin>>e; cout<<"matrix y: "; cin>>y; return 0; }
|
|