Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 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[sizeof(den)];
  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(){
  66.  
  67.         }
  68.         Retea(Calculator** calcArr, int nrCalcs):n(nrCalcs){
  69.             *this->calculatoare = new Calculator[nrCalcs];
  70.             calculatoare = calcArr;
  71.         }
  72.  
  73.     friend ostream& operator << (ostream& out, Retea& r);
  74. };
  75.  
  76. ostream& operator << (ostream& out, Retea& r){
  77.     for(int i = 0; i < r.n; i++){
  78.         out << *r.calculatoare[i] << endl;
  79.     }
  80.     return out;
  81. }
  82.  
  83. int main()
  84. {
  85.     Calculator contabilitate("Contabilitate", true);
  86.     Calculator marketing("PC Marketing", false);
  87.     contabilitate.setDenumire("PC Contabilitate");
  88.     cout << contabilitate << endl;
  89.     cout << marketing << endl; // 3p
  90.  
  91.     Calculator* calcArray[] = {&marketing, &contabilitate};
  92.     Retea r1(calcArray, 2);
  93.     //cout << r1; // 1p
  94.     Retea r2; // segmentation fault
  95.  
  96.  
  97.  
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement