Объектно-ориентированное программирование на C++. Андрианова А.А - 143 стр.

UptoLike

Объектно-ориентированное программирование на С++
Matrix Matrix::operator * (Matrix& ob)
{
if(n == ob.m)
{
// перемножение матриц
. . .
}
else
// количество столбцов первой матрицы должно
// быть равно количеству строк второй матрицы
throw DimensionProductException();
}
// генерация исключения в операции сложения матриц
Matrix Matrix::operator + (Matrix& ob)
{
if(n == ob.n && m == ob.m)
{
// сложение матриц
. . .
}
else
// размеры матриц должны совпадать
throw DimensionSumException();
}
Как и ранее, можно обрабатывать каждый вид исключения своим
обработчиком catch:
. . .
try
{
Matrix a(m,n), b(n,k);
cin >> a >> b;
Matrix c = a * b;
cout << "a*b=" << c << endl;
Matrix d = a + b;
cout << "a+b=" << d << endl;
}
catch(DimensionProductException e)
{
e.ShowMessage();
}
catch(DimensionSumException e)
{
143
                          Объектно-ориентированное программирование на С++
    Matrix Matrix::operator * (Matrix& ob)
    {
         if(n == ob.m)
         {
              // перемножение матриц
              .    .    .
         }
         else
              // количество столбцов первой матрицы должно
              // быть равно количеству строк второй матрицы
              throw DimensionProductException();
    }


    // генерация исключения в операции сложения матриц
    Matrix Matrix::operator + (Matrix& ob)
    {
         if(n == ob.n && m == ob.m)
         {
              // сложение матриц
              .    .    .
         }
    else
         // размеры матриц должны совпадать
         throw DimensionSumException();
    }



    Как и ранее, можно обрабатывать каждый вид исключения своим
обработчиком catch:

    .     .    .
    try
    {
          Matrix a(m,n),   b(n,k);
          cin >> a >> b;
          Matrix c = a *   b;
          cout << "a*b="   << c << endl;
          Matrix d = a +   b;
          cout << "a+b="   << d << endl;
    }
    catch(DimensionProductException e)
    {
         e.ShowMessage();
    }
    catch(DimensionSumException e)
    {

                                                                       143