ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
}
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();
}
// оператор умножения матриц на число типа Т справа
template Matrix 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
- …
- следующая ›
- последняя »
