Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7. const string SEP = "======================================================";
  8.  
  9.  
  10. class Calculator{
  11.     private:
  12.         char* denumire;
  13.         bool eServer;
  14.         int cod;
  15.     public:
  16.         static int codCnt;
  17.  
  18.         Calculator():cod(Calculator::codCnt++){
  19.             setDenumire("Fara Mama fara Tata");
  20.             setServer(false);
  21.         } // constructor default de copiere
  22.  
  23.         Calculator(char* den, bool serv):cod(Calculator::codCnt++){ // constructor overloaded
  24.             setDenumire(den);
  25.             setServer(serv);
  26.         }
  27.  
  28.         // setteri
  29.             void setDenumire(char* den){
  30.                 this->denumire = new char[strlen(den) + 1];
  31.                 strcpy(this->denumire, den);
  32.             }
  33.  
  34.             void setServer(bool b){
  35.                 this->eServer = b;
  36.             }
  37.         // getteri
  38.             char* getDenumire(){
  39.                 return this->denumire;
  40.             }
  41.  
  42.             bool getServer(){
  43.                 return this->eServer;
  44.             }
  45.         // operatori
  46.             friend ostream& operator << (ostream& out, Calculator& calc);
  47.             friend ostream& operator << (ostream& out, char *cls);
  48.  
  49. };
  50.  
  51. ostream& operator << (ostream& out, Calculator& calc){
  52.     out << calc.cod << " - " << calc.getDenumire();
  53.     return out;
  54. }
  55.  
  56. int Calculator::codCnt = 1001;
  57.  
  58. // RETEA
  59.  
  60. class Retea{
  61.     public:
  62.         Calculator** calculatoare;
  63.         int n = 0;
  64.  
  65.         Retea():n(1){
  66.             calculatoare = new Calculator*[1];
  67.             Calculator emptCalc;
  68.             Calculator* calcArr[] = {&emptCalc};
  69.             memcpy(calculatoare, calcArr, sizeof(Calculator)*n);
  70.         }
  71.         Retea(Calculator** calcArr, int nrCalcs):n(nrCalcs){
  72.             calculatoare = new Calculator*[nrCalcs];
  73.             memcpy(calculatoare, calcArr, sizeof(Calculator)*nrCalcs);
  74.         }
  75.  
  76.     friend ostream& operator << (ostream& out, Retea& r);
  77. };
  78.  
  79. ostream& operator << (ostream& out, Retea& r){
  80.     for(int i = 0; i < r.n; i++){
  81.         out << *r.calculatoare[i] << endl;
  82.     }
  83.     return out;
  84. }
  85.  
  86. int main()
  87. {
  88.     Calculator contabilitate("Contabilitate", true);
  89.     Calculator marketing("PC Marketing", false);
  90.     contabilitate.setDenumire("PC Contabilitate");
  91.     cout << contabilitate << endl;
  92.     cout << marketing << endl; // 3p
  93.  
  94.     Calculator* calcArray[] = {&marketing, &contabilitate};
  95.     Retea r1(calcArray, 2);
  96.     cout << r1; // 1p
  97.     Retea r2();
  98.  
  99.  
  100.  
  101.  
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement