axeefectushka

Untitled

Jan 23rd, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. class first {
  8. protected:
  9.     int *arr;
  10.     int sizeArr;
  11. public:
  12.     first(int size) : sizeArr(size)
  13.     {
  14.         arr = new int[size];
  15.         cout << "Input elements: ";
  16.         for (int i = 0; i < sizeArr; i++)
  17.         {
  18.             cin >> arr[i];
  19.         }
  20.     }
  21.     first()
  22.     {
  23.         arr = NULL;
  24.         sizeArr = 0;
  25.     }
  26.     virtual int task()
  27.     {
  28.         long long sum = 0;
  29.         __try
  30.         {
  31.             for (int i = 0; i < sizeArr; i++)
  32.             {
  33.                 if (sum > INT_MAX)
  34.                 {
  35.                     RaiseException(EXCEPTION_PRIV_INSTRUCTION, 0, 0, NULL);
  36.                 }
  37.                 sum += arr[i];
  38.             }
  39.         }
  40.         __except (EXCEPTION_EXECUTE_HANDLER)
  41.         {
  42.             cout << "ERROR!" << endl;
  43.         }
  44.         return sum;
  45.     }
  46.     ~first() {
  47.         delete[]arr;
  48.     }
  49. };
  50.  
  51. class second : public first
  52. {
  53. public:
  54.     second(int sizeArr) : first(sizeArr)
  55.     {}
  56.     int task()
  57.     {
  58.         long long mult = 1;
  59.         __try
  60.         {
  61.             for (int i = 0; i < sizeArr; i++)
  62.             {
  63.                 if (mult >INT_MAX)
  64.                 {
  65.                     RaiseException(EXCEPTION_PRIV_INSTRUCTION, 0, 0, NULL);
  66.                 }
  67.                 mult *= arr[i];
  68.             }
  69.         }
  70.         __except (EXCEPTION_EXECUTE_HANDLER)
  71.             {
  72.                 cout << "ERROR!" << endl;
  73.             }
  74.         return mult;
  75.     }
  76. };
  77.  
  78. int main()
  79. {
  80.     first mas1(5);
  81.     second mas2(5);
  82.     cout << "MULT OF 1 ARRAY:" << mas1.task() << endl;
  83.     cout << "MULT OF 2 ARRAY:" << mas2.task() << endl;
  84.     return 0;
  85. }
Add Comment
Please, Sign In to add comment