Advertisement
Cieslin

Untitled

Apr 17th, 2018
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. // SejuCs.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <malloc.h>
  6. #include <Windows.h>
  7.  
  8.  
  9. class Matrix {
  10. private:
  11.     float **tab;
  12.     int N;
  13.     int M;
  14. public:
  15.     Matrix(int _N, int _M) {
  16.         N = _N;
  17.         M = _M;
  18.         tab = (float **)malloc(N * sizeof(float*));
  19.         for (int i = 0; i < N; i++)
  20.             tab[i] = (float *)malloc(M * sizeof(float));
  21.  
  22.         for (int i = 0; i < N; i++)
  23.             for (int j = 0; j < M; j++)
  24.                 tab[i][j] = 0;
  25.     }
  26.  
  27.     ~Matrix() {
  28.         free(tab);
  29.     }
  30.  
  31.     Matrix(const Matrix& matrix) {
  32.         tab = (float **)malloc(N * sizeof(float*));
  33.         for (int i = 0; i < N; i++)
  34.             tab[i] = (float *)malloc(M * sizeof(float));
  35.  
  36.         if (tab != NULL) {
  37.             for (int i = 0; i < N; i++)
  38.                 for (int j = 0; j < M; j++)
  39.                     tab[i][j] = matrix.tab[i][j];
  40.         }
  41.     }
  42.  
  43.     void Display() {
  44.         for (int i = 0; i < N; i++) {
  45.             for (int j = 0; j < M; j++)
  46.                 printf("%lf", tab[i][j]);
  47.             printf("\n");
  48.         }
  49.     }
  50.  
  51.     Matrix& operator = (const Matrix& matrix) {
  52.         tab = (float **)malloc(N * sizeof(float*));
  53.         for (int i = 0; i < N; i++)
  54.             tab[i] = (float *)malloc(M * sizeof(float));
  55.  
  56.         if (tab != NULL) {
  57.             for (int i = 0; i < N; i++)
  58.                 for (int j = 0; j < M; j++)
  59.                     tab[i][j] = matrix.tab[i][j];
  60.         }
  61.         return *this;
  62.     }
  63.  
  64.     const double operator () (int i, int j) const{
  65.         return tab[i][j];
  66.     }
  67.  
  68.     Matrix& operator = (const Matrix& matrix) {
  69.         tab = (float **)malloc(N * sizeof(float*));
  70.         for (int i = 0; i < N; i++)
  71.             tab[i] = (float *)malloc(M * sizeof(float));
  72.         if (tab != NULL)
  73.         {
  74.             for (int i = 0; i < N; i++)
  75.                 for (int j = 0; j < M; j++)
  76.                     tab[i][j] = matrix.tab[i][j];
  77.         }
  78.         return *this;
  79.     }
  80.  
  81.  
  82. };
  83.  
  84.  
  85.  
  86. int main()
  87. {
  88.     Matrix matrix(2, 5);
  89.     matrix.Display();
  90.     matrix.~Matrix();
  91.     system("PAUSE");
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement