MyTetra Share
Делитесь знаниями!
Перегрузка через обычные ф-ции, Перегрузка через дружественные ф-ции (friend), дружественные классы, Перегрузка <<, >>, Шаблоны ф-ций
Время создания: 13.06.2020 19:17
Раздел: C++ - Примеры кода - Работа на уроке
Запись: Shut913/Tetra-notes-Programming/master/base/1592065046oy5snenwj1/text.html на raw.githubusercontent.com

#include <iostream>

using namespace std;



// Перегрузка через обычные ф-ции

//class Pocket

//{

//private:

// int _usd;

//public:

// Pocket(int usd = 0) : _usd{ usd } {}

// int getUSD() const { return _usd; }

//};

//

//Pocket operator+(const Pocket& p1, const Pocket& p2)

//{

// return Pocket(p1.getUSD() + p2.getUSD());

//}

//

//void main()

//{

// Pocket a(7);

// Pocket b(12);

// Pocket c = a + b;

//

// cout << c.getUSD();

//}


// ===== Перегрузка через дружественные ф-ции (friend)

// дружественные ф-ции

//class Pocket

//{

//private:

// int _usd;

//public:

// Pocket(int usd = 0) : _usd{ usd } {}

// int getUSD() const { return _usd; }

//

// friend void print(Pocket& p);

// friend bool isEqual(Pocket& a, Pocket& b);

//};

//

//void print(Pocket& p)

//{

// cout << "usd = " << p._usd;

//}

//

//bool isEqual(Pocket& a, Pocket& b)

//{

// return a._usd == b._usd;

//}

//

//void main()

//{

// Pocket p(12);

// print(p);

//}

//

// дружественные классы

//class Pocket

//{

//private:

// int _usd;

//public:

// Pocket(int usd = 0) : _usd{ usd } {}

// int getUSD() const { return _usd; }

//

// friend class Display;

// friend void func();

//};

//

//class Display

//{

//public:

// void show(Pocket& p)

// {

// cout << p._usd << endl;

// }

//

// friend void func();

//};

//

//void func() {}

//

//void main()

//{

// Pocket p(150);

// Display display;

// display.show(p);

//}

// Перегрузка оператооров через дружественные ф-ции

//class Pocket

//{

//private:

// int _usd;

//public:

// Pocket(int usd = 0) : _usd{ usd } {}

// int getUSD() const { return _usd; }

//

// friend Pocket operator+(const Pocket& a, const Pocket& b);

//};

//

//Pocket operator+(const Pocket& a, const Pocket& b)

//{

// return Pocket(a._usd + b._usd);

//}


//==== Перегрузка << >>

// Перегрузка <<

//Point p;

//cout << p;

// оператор << - бинарный

//class Point

//{

//private:

// int _x, _y, _z;

//public:

// Point(int x = 0, int y = 0, int z = 0) :

// _x{ x }, _y{ y }, _z{ z } {}

// int getX() { return this->_x; }

// int getY() { return this->_y; }

// int getZ() { return this->_z; }

//

// friend std::ostream& operator<<(std::ostream& out, const Point& p);

// friend std::istream& operator>>(std::istream& in, Point& p);

//};

//

//std::ostream& operator<<(std::ostream& out, const Point& p)

//{

// out << p._x << ", " << p._y << ", " << p._z << "\n";

// return out;

//}

//

//std::istream& operator>>(std::istream& in, Point& p)

//{

// in >> p._x;

// in >> p._y;

// in >> p._z;

//

// return in;

//}

//

//class Fraction;

//void main()

//{

// Point p(1, 2, 3);

// cout << p << "string"; // std::cout - объект класса std::ostream

//

// Point a;

// cout << "Enter a point: ";

// cin >> a; // std::cin - объект класса std::istream

// cout << a;

//}


// ====== Шаблоны ф-ций

//int max(int a, int b)

//{

// return (a > b) ? a : b;

//}

//

//double max(double a, double b)

//{

// return (a > b) ? a : b;

//}

//template <typename T>

//const T& max(const T& a, const T& b)

//{

// return (a > b) ? a : b;

//}

//

//void main()

//{

// int a = max(3, 4);

// cout << a << endl;

// double b = max(4.5, 3.7);

// cout << b << endl;

//}

//

//

//template <typename T>

//const T& max(const T& a, const T& b)

//{

// return (a > b) ? a : b;

//}

//

//template <typename T>

//T average(T* arr, int size)

//{

// T sum = 0;

// for (int i{}; i < size; i++)

// sum += *(arr + i);

//

// sum /= size;

// return sum;

//}

//

//class Pocket

//{

//private:

// int _usd;

//public:

// Pocket(int usd = 0) : _usd{ usd } {}

// friend bool operator>(const Pocket& a, const Pocket& b);

// friend std::ostream& operator<<(std::ostream& out, const Pocket& pocket);

// Pocket& operator+=(const Pocket& p)

// {

// this->_usd += p._usd;

// return *this;

// }

// Pocket& operator/=(const int val)

// {

// this->_usd /= val;

// return *this;

// }

//};

//

//bool operator>(const Pocket& a, const Pocket& b)

//{

// return a._usd > b._usd;

//}

//

//std::ostream& operator<<(std::ostream& out, const Pocket& pocket)

//{

// out << "usd = " << pocket._usd << "$\n";

// return out;

//}

//

//void main()

//{

// /*Pocket a(7);

// Pocket b(12);

// Pocket c = max(a, b);*/

//

// /*int arr[] = { 1, 2, 3, 4, 5, 6 };

// cout << average(arr, 6) << endl;

// double arr2[] = { 4.25, 5.37, 8.44, 9.25 };

// cout << average(arr2, 4) << endl;*/

//

// Pocket arr3[] = { Pocket(3), Pocket(4), Pocket(5), Pocket(6) };

// cout << average(arr3, 4) << endl;

//}


Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования