Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <string>
- using namespace std;
- class matr
- {
- double** data;
- public:
- matr()
- {
- data = new double*[2];
- data[0] = new double[2];
- data[1] = new double[2];
- data[0][0] = 0;
- data[0][1] = 0;
- data[1][0] = 0;
- data[1][1] = 0;
- }
- matr(const matr &temp)
- {
- data = new double*[2];
- data[0] = new double[2];
- data[1] = new double[2];
- for (int i = 0; i < 2; i++)
- for (int j = 0; j < 2; j++) data[i][j] = temp.data[i][j];
- }
- matr(const double x)
- {
- data = new double*[2];
- data[0] = new double[2];
- data[1] = new double[2];
- data[0][0] = x;
- data[0][1] = x;
- data[1][0] = x;
- data[1][1] = x;
- }
- matr(const double x1, const double x2, const double x3, const double x4)
- {
- data = new double*[2];
- data[0] = new double[2];
- data[1] = new double[2];
- data[0][0] = x1;
- data[0][1] = x2;
- data[1][0] = x3;
- data[1][1] = x4;
- }
- ~matr()
- {
- delete[] data[0];
- delete[] data[1];
- delete[] data;
- }
- matr operator+ (const matr &temp) const
- {
- matr temp_obj(temp);
- temp_obj.data[0][0] = temp_obj.data[0][0] + data[0][0];
- temp_obj.data[0][1] = temp_obj.data[0][1] + data[0][1];
- temp_obj.data[1][0] = temp_obj.data[1][0] + data[1][0];
- temp_obj.data[1][1] = temp_obj.data[1][1] + data[1][1];
- return temp_obj;
- }
- matr operator+ (const double &x) const
- {
- matr temp_obj(x);
- temp_obj.data[0][0] = temp_obj.data[0][0] + data[0][0];
- temp_obj.data[0][1] = temp_obj.data[0][1] + data[0][1];
- temp_obj.data[1][0] = temp_obj.data[1][0] + data[1][0];
- temp_obj.data[1][1] = temp_obj.data[1][1] + data[1][1];
- return temp_obj;
- }
- matr& operator= (matr const& temp)
- {
- if (&temp != this)
- for (int i = 0; i < 2; i++)
- for (int j = 0; j < 2; j++) data[i][j] = temp.data[i][j];
- return *this;
- }
- matr& operator+=(const matr &temp)
- {
- data[0][0] += temp.data[0][0];
- data[0][1] += temp.data[0][1];
- data[1][0] += temp.data[1][0];
- data[1][1] += temp.data[1][1];
- return *this;
- }
- matr& operator+=(const double x)
- {
- data[0][0] += x;
- data[0][1] += x;
- data[1][0] += x;
- data[1][1] += x;
- return *this;
- }
- double det() const { return data[0][0] * data[1][1] - data[0][1] * data[1][0]; }
- friend ostream& operator<<(ostream &out, const matr &p)
- {
- out << setw(3) << p.data[0][0] << " " << setw(3) << p.data[0][1] << "\n" << setw(3) << p.data[1][0] << " " << setw(3) << p.data[1][1] << "\n";
- return out;
- }
- friend matr operator+ (const double &x, const matr &temp)
- {
- matr temp_obj(temp.data[0][0] + x, temp.data[0][1] + x, temp.data[1][0] + x, temp.data[1][1] + x);
- return temp_obj;
- }
- };
- int main()
- {
- matr obj1;
- matr obj2(4);
- matr obj3(1, 2, 3, 4);
- matr obj4(obj3);
- /*
- obj1 = obj2 = obj3;
- obj1 = obj1;
- cout << obj1 << endl;
- */
- const matr obj5(5, 6, 7, 8);
- //cout << obj5.det() << endl;
- /*
- obj1 = obj5 + 1; cout << obj1 << endl;
- obj1 = 1 + obj5; cout << obj1 << endl;
- obj1 = obj5 + obj3; cout << obj1 << endl;
- */
- /*
- obj2 += 1; cout << obj2;
- obj2 += obj3; cout << obj2;
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement