Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Bani.h
- #pragma once
- #include <iostream>
- using namespace std;
- template<class T>
- class Bani
- {
- protected:
- T m_bani;
- public:
- Bani();
- Bani(T);
- Bani operator+(Bani b);
- Bani operator-(Bani b);
- Bani operator*(Bani b);
- Bani operator/(Bani b);
- friend ostream& operator<<(ostream& cout, Bani b)
- {
- cout << b.m_bani;
- return cout;
- }
- };
- template<class T>
- Bani<T>::Bani() : Bani(0) {}
- template<class T>
- Bani<T>::Bani(T m_bani)
- {
- this->m_bani = m_bani;
- }
- template<class T>
- Bani<T> Bani<T>::operator+(Bani b)
- {
- return this->m_bani + b.m_bani;
- }
- template<class T>
- Bani<T> Bani<T>::operator-(Bani b)
- {
- return this->m_bani - b.m_bani;
- }
- template<class T>
- Bani<T> Bani<T>::operator*(Bani b)
- {
- return this->m_bani * b.m_bani;
- }
- template<class T>
- Bani<T> Bani<T>::operator/(Bani b)
- {
- return this->m_bani / b.m_bani;
- }
- // Pereche.h
- #include <iostream>
- using namespace std;
- template <class T>
- class Pereche
- {
- private:
- T comp1, comp2;
- public:
- Pereche() : Pereche(0, 0) {}
- Pereche(T c1, T c2)
- {
- comp1 = c1;
- comp2 = c2;
- }
- T adunare()
- {
- return comp1 + comp2;
- }
- T scadere()
- {
- return comp1 - comp2;
- }
- T inmultire()
- {
- return comp1 * comp2;
- }
- T impartire()
- {
- return comp1 / comp2;
- }
- void afisareOp()
- {
- cout << "Rezultatul adunarii componentelor este: " << adunare() << endl;
- cout << "Rezultatul scaderii componentelor este: " << scadere() << endl;
- cout << "Rezultatul inmultirii componentelor este: " << inmultire() << endl;
- cout << "Rezultatul impartirii componentelor este: " << impartire() << endl << endl;
- }
- };
- // main
- #include "Bani.h"
- #include "Pereche.h"
- template<class T>
- T suma(T a, T b, T c)
- {
- return a + b + c;
- }
- int main()
- {
- int a = 5, b = 7, c = 9;
- cout << suma(a, b, c) << endl;
- double a1 = 5.6, b1 = 7.4, c1 = 9.8;
- cout << suma(a1, b1, c1) << endl;
- Bani<double> a2(5.45), b2(9.65), c2(1.27);
- cout << suma(a2, b2, c2) << endl << endl;
- Pereche<int> pInt(2, 5);
- pInt.afisareOp();
- Pereche<double> pDouble(2.4, -6.7);
- pDouble.afisareOp();
- Pereche<Bani<int>> pBaniInt(5, 7);
- pBaniInt.afisareOp();
- Pereche<Bani<double>> pBaniDouble(-23.5, 67.8);
- pBaniDouble.afisareOp();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement