Create a class template for an array
file myArray.h
#ifndef myArray_h #define myArray_h #include <iostream> using std::istream; using std::ostream; template <typename T> class myArray //ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΊΠ»Π°ΡΡΠ° myArray { T** mas; //ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² int line, //ΠΊΠΎΠ»-Π²ΠΎ ΡΡΡΠΎΠΊ column; //ΠΊΠΎΠ»-Π²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² friend istream& operator >> (istream& in, const myArray& el) //ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΡΠ²ΠΎΠ΄Π° >> { for (int i = 0; i < el.line; i++) { for (int j = 0; j < el.column; j++) { in >> el.mas[i][j]; } } return in; } public: myArray() { mas = 0; //ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² line = 0; column = 0; } myArray(int n, int m); //ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ myArray(const myArray& masToCopy); //ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ~myArray() //Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ { for (int i = 0; i < line; i++) { delete[](mas[i]); } delete[](mas); } friend myArray <T> operator +(const myArray<T>&, const myArray<T>&); //ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ + }; template <typename T> myArray <T>::myArray(int n = 1, int m = 1) : line(n), column(m) //ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ { mas = new int* [n]; for (int i = 0; i < n; i++) { mas[i] = new int[m]; } } template <typename T> myArray <T>:: myArray(const myArray& masToCopy) // ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ { line = masToCopy.line; column = masToCopy.column; mas = new int* [line]; // Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ for (int i = 0; i < line; i++) mas[i] = new int[column]; for (int i = 0; i < line; i++) for (int j = 0; j < column; j++) mas[i][j] = masToCopy.mas[i][j]; } template <typename T> myArray <T> operator+(const myArray<T>& m1, const myArray<T>& m2) //ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ + { for (int i = 0; i < m1.line; i++) { for (int j = 0; j < m1.column; j++) { m1.mas[i][j] = m1.mas[i][j] + m2.mas[i][j]; } } return m1; } main.cpp file
#include "stdafx.h" #include <iostream> #include "myArray.h" using std::cout; using std::endl; int main() { myArray<int> intArray1(2, 2); myArray<int> intArray2(2, 2); myArray<int> A = intArray1 + intArray2; cout << A; return 0; } How can I fix it?
