ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
}
else
throw DimensionProductException();
}
// оператор умножения матриц на число типа Т справа
template <class T> Matrix<T> Matrix<T>::operator *(T b)
{
Matrix<T> temp(m, n);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
temp[i][j] = a[i][j] * b;
return temp;
}
// оператор умножения матриц на число типа Т слева
template <class T>
Matrix<T> operator * (T b, Matrix<T>& ob)
{
Matrix<T> temp(ob.m, ob.n);
for(int i = 0; i < ob.m; i++)
for(int j = 0; j < ob.n; j++)
temp[i][j] = b * ob[i][j];
return temp;
}
// оператор присваивания матрицы
template <class T>
Matrix<T>& Matrix<T>::operator =(Matrix<T>& ob)
{
cout << "Matrix = " << endl;
if(n != ob.n || m != ob.m)
{
for(int i = 0; i < m; i++)
delete [] a[i];
delete [] a;
n = ob.n;
m = ob.m;
a = new T* [m];
for(int i = 0; i < m; i++)
a[i] = new T [n];
}
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
a[i][j] = ob.a[i][j];
return *this;
}
219
Объектно-ориентированное программирование на С++ } else throw DimensionProductException(); } // оператор умножения матриц на число типа Т справа templateMatrix Matrix ::operator *(T b) { Matrix temp(m, n); for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) temp[i][j] = a[i][j] * b; return temp; } // оператор умножения матриц на число типа Т слева template Matrix operator * (T b, Matrix & ob) { Matrix temp(ob.m, ob.n); for(int i = 0; i < ob.m; i++) for(int j = 0; j < ob.n; j++) temp[i][j] = b * ob[i][j]; return temp; } // оператор присваивания матрицы template Matrix & Matrix ::operator =(Matrix & ob) { cout << "Matrix = " << endl; if(n != ob.n || m != ob.m) { for(int i = 0; i < m; i++) delete [] a[i]; delete [] a; n = ob.n; m = ob.m; a = new T* [m]; for(int i = 0; i < m; i++) a[i] = new T [n]; } for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) a[i][j] = ob.a[i][j]; return *this; } 219
Страницы
- « первая
- ‹ предыдущая
- …
- 217
- 218
- 219
- 220
- 221
- …
- следующая ›
- последняя »