curs 2 c+

Upload: leonte-tirbu

Post on 03-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 curs 2 C+

    1/8

    Cursul 2

    O trecere in revista a POO (continuare I)

    OUtilizare de clase: string.h, string.cpp

    OIerarhii de obiecte (relatia "a-kind-of")

    OExemplul Meniu: .h, .cpp, demo

    OComunicarea intre obiecte

    OExemplul contor - meniu: .h, .cpp. demo

    #include "contor-m.h"#include

    // Functiile membre ale clasei Meniu_Contor

    void Meniu_Contor::completeaza_opt(){this->ad_optiune("Incrementare");

    this->ad_optiune("Decrementare");this->ad_optiune("Resetare");this->ad_terminator("Terminare");this->ad_prompter(">>>");

    }

    void Meniu_Contor::executa_selectie(){switch (selectie)

    {case 1:contor->increment();break;

    case 2:contor->decrement();break;

    case 3:contor->reset();break;

    };}

    // Functiile membre ale aclasei Display_Box_Contor

    void Display_Box_Contor::afiseaza_val(){

    this->afiseaza_eticheta();cout get_val() = '0') && (c

  • 7/28/2019 curs 2 C+

    2/8

    // Functiile membre ale clasei Menu

    void Meniu::ad_optiune(String optiune_noua){// Add new_item to the menu.optiune[dim_meniu] = String(dim_meniu + 1) + String(". ") + optiune_noua;dim_meniu++;

    }

    void Meniu::ad_terminator (String et_terminare){this->ad_optiune(et_terminare);

    }

    void Meniu::ad_prompter(String prompter_nou){prompter = prompter_nou;

    }

    void Meniu::afiseaza_meniu (){cout

  • 7/28/2019 curs 2 C+

    3/8

  • 7/28/2019 curs 2 C+

    4/8

    #endif

    #include "meniu.h"#include "contor.h"

    class Meniu_Contor : public Meniu {public:// Constructori/destructoriMeniu_Contor() { }~Meniu_Contor() { }// AtributeContor& get_contor() { return *contor; }// Metodevoid executa_selectie() ;void completeaza_opt();void set_contor(Contor& new_contor) { contor = &new_contor; }

    private:// Date-membruContor* contor;

    };

    class Display_Box_Contor : public Display_Box {public:// Constructori/destructoriDisplay_Box_Contor() { }~Display_Box_Contor() { }// Atributevoid afiseaza_val();

    Contor& get_contor() { return *contor; }// Metodevoid set_contor(Contor& contor_nou) { contor = &contor_nou; }

    private:// Data membruContor* contor;

    };

    #ifndef STRING_H#include "string.h"#endif

  • 7/28/2019 curs 2 C+

    5/8

  • 7/28/2019 curs 2 C+

    6/8

    };

    void Meniu_Test::completeaza_opt(){this->ad_optiune("Optiune 1");this->ad_optiune("Optiune 2");this->ad_optiune("Optiune 3");this->ad_terminator("Terminare.");this->ad_prompter(">>>");

    };

    void main(void) {Meniu_Test meniu;meniu.completeaza_opt();cout

  • 7/28/2019 curs 2 C+

    7/8

    {String *pstring;pstring = new String(this->character_array);return *pstring;

    }

    String& String::operator+ (const String& a_string){String *presult;char *pchar;pchar = new char[this->size() + a_string.size() + 1];pchar[0] = '\0';strcpy(pchar, (char*) *this);strcat(pchar, (char*) a_string);presult = new String(pchar);return (*presult);

    }

    String& String::operator+= (const String& a_string){char *pchar;string_length += a_string.size();pchar = new char[string_length + 1];strcpy(pchar,character_array);

    strcat(pchar, a_string.character_array);delete character_array;character_array = pchar;return (*this);

    }

    String& String::operator= (const String& a_string){

    if ((*this) != a_string ){if ( string_length != a_string.size() )

    {delete character_array;

    string_length = a_string.size();character_array = new char[string_length + 1];}

    strcpy(character_array, (char*) a_string );}

    return (*this);}

    bool String::operator< (const String& a_string){if (strcmp(character_array, a_string.character_array) < 0)

    return true;else

    return false;}

    bool String::operator> (const String& a_string){if (strcmp(character_array, a_string.character_array) > 0)

    return true;else

    return false;}

  • 7/28/2019 curs 2 C+

    8/8

    bool String::operator== (const String& a_string){if (strcmp(character_array, a_string.character_array) == 0)

    return true;else

    return false;}

    ostream& operator