Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <string>
- #include <algorithm>
- using namespace std;
- const string SEP = "======================================================";
- class Calculator{
- private:
- char* denumire;
- bool eServer;
- int cod;
- public:
- static int codCnt;
- Calculator():cod(Calculator::codCnt++){
- setDenumire("Fara Mama fara Tata");
- setServer(false);
- } // constructor default de copiere
- Calculator(char* den, bool serv):cod(Calculator::codCnt++){ // constructor overloaded
- setDenumire(den);
- setServer(serv);
- }
- // setteri
- void setDenumire(char* den){
- this->denumire = new char[strlen(den) + 1];
- strcpy(this->denumire, den);
- }
- void setServer(bool b){
- this->eServer = b;
- }
- // getteri
- char* getDenumire(){
- return this->denumire;
- }
- bool getServer(){
- return this->eServer;
- }
- // operatori
- friend ostream& operator << (ostream& out, Calculator& calc);
- friend ostream& operator << (ostream& out, char *cls);
- };
- ostream& operator << (ostream& out, Calculator& calc){
- out << calc.cod << " - " << calc.getDenumire();
- return out;
- }
- int Calculator::codCnt = 1001;
- // RETEA
- class Retea{
- public:
- Calculator** calculatoare;
- int n = 0;
- Retea():n(1){
- calculatoare = new Calculator*[1];
- Calculator emptCalc;
- Calculator* calcArr[] = {&emptCalc};
- memcpy(calculatoare, calcArr, sizeof(Calculator)*n);
- }
- Retea(Calculator** calcArr, int nrCalcs):n(nrCalcs){
- calculatoare = new Calculator*[nrCalcs];
- memcpy(calculatoare, calcArr, sizeof(Calculator)*nrCalcs);
- }
- friend ostream& operator << (ostream& out, Retea& r);
- };
- ostream& operator << (ostream& out, Retea& r){
- for(int i = 0; i < r.n; i++){
- out << *r.calculatoare[i] << endl;
- }
- return out;
- }
- int main()
- {
- Calculator contabilitate("Contabilitate", true);
- Calculator marketing("PC Marketing", false);
- contabilitate.setDenumire("PC Contabilitate");
- cout << contabilitate << endl;
- cout << marketing << endl; // 3p
- Calculator* calcArray[] = {&marketing, &contabilitate};
- Retea r1(calcArray, 2);
- cout << r1; // 1p
- Retea r2();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement