|
|||||||
Перегрузка через обычные ф-ции, Перегрузка через дружественные ф-ции (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; //} |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|