Facebook
From Me, 6 Years ago, written in C++.
This paste is a reply to vector from Me - view diff
Embed
Download Paste or View Raw
Hits: 428
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. template<typename T>
  8. void Swaper(T & a, T & b)
  9. {
  10.     T temp = a;
  11.     a = b;
  12.     b = temp;
  13. }
  14.  
  15. class Bryla
  16. {    
  17.    private:
  18.    
  19.    public:
  20.        virtual double Objetosc() = 0;
  21. };
  22.  
  23. class Kula : public Bryla
  24. {
  25.   private:
  26.       int r;
  27.   public:
  28.       Kula(int r = 0)
  29.       {
  30.          this->r = r;
  31.       }
  32.  
  33.       virtual double Objetosc()
  34.       {
  35.           return 3.14 * r * r * r * 4 / 3.0;
  36.       }
  37. };
  38.  
  39. class Szescian : public Bryla
  40. {
  41.   private:
  42.       int a;
  43.   public:
  44.       Szescian(int a = 0)
  45.       {
  46.           this->a = a;
  47.       }
  48.  
  49.       virtual double Objetosc()
  50.       {
  51.           return a * a * a;
  52.       }
  53. };
  54.  
  55. int main()
  56. {
  57.     vector<Bryla *> vectorek;
  58.     vectorek.push_back(new Kula(5));
  59.     vectorek.push_back(new Szescian(6));
  60.     vectorek.push_back(new Kula(7));
  61.     vectorek.push_back(new Szescian(1));
  62.  
  63.     int sum = 0;
  64.     for(int i = 0; i < vectorek.size(); ++i)
  65.     {
  66.         sum += vectorek[i]->Objetosc();
  67.     }
  68.     double average = static_cast<double> (sum) / vectorek.size();
  69.  
  70.     cout << "srednia objetosc = " << average << endl;
  71.     int a = 5, b = 1;
  72.  
  73.     Swaper(a,b);
  74.     cout << a << ", " << b;
  75.  
  76.     return 0;
  77. }
  78.