Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- //vashiot kod tuka
- class IndexOutOfBounds{};
- class Kontakt
- {
- private:
- char *ime;
- char prezime[30];
- public:
- char *getIme()
- {
- return ime;
- }
- char *getPrezime()
- {
- return prezime;
- }
- Kontakt(char *Ime = "", char *Prezime ="")
- {
- ime= new char[strlen(Ime)+1];
- strcpy(ime,Ime);
- strcpy(prezime,Prezime);
- }
- Kontakt& operator=(const Kontakt &k)
- {
- ime= new char[strlen(k.ime)+1];
- strcpy(ime,k.ime);
- strcpy(prezime,k.prezime);
- return *this;
- }
- ~Kontakt(){
- delete [] ime;
- }
- char& operator[] (int i)
- { if(i<0 || i >= strlen(prezime))
- throw IndexOutOfBounds();
- else
- return prezime[i];
- }
- };
- class Imenik
- {
- private:
- Kontakt *kontakti;
- int brojKontakti;
- public:
- Imenik()
- {
- brojKontakti=0;
- kontakti = new Kontakt[brojKontakti];
- }
- ~Imenik()
- {
- delete [] kontakti;
- }
- Imenik& operator+=(const Kontakt &k)
- {
- Kontakt *tmp = new Kontakt[brojKontakti+1];
- for(int i=0;i<brojKontakti;i++)
- {
- tmp[i]=kontakti[i];
- }
- tmp[brojKontakti]=k;
- delete [] kontakti;
- kontakti=tmp;
- brojKontakti++;
- }
- friend ostream& operator<<( ostream &out, Imenik &im)
- {
- for(int i=0;i<im.brojKontakti;i++)
- {
- return out<<im.kontakti[i].getIme() << " " << im.kontakti[i].getPrezime()<<endl;
- }
- }
- };
- int main() {
- char ime[20],prezime[30];
- int n;
- cin >> n;
- if(n == 0) {
- cout << "Konstruktori na Kontakt" << endl;
- cin>>ime>>prezime;
- Kontakt k1(ime, prezime);
- cout << "OK" << endl;
- } else if(n == 1) {
- cout << "[] operator" << endl;
- cin>>ime>>prezime;
- Kontakt k1(ime, prezime);
- cout << "a[0] = " << k1[0] << endl;
- cout << "a[1] = " << k1[1] << endl;
- cout << "a[2] = " << k1[2] << endl;
- } else if(n == 2) {
- cout << "Isklucok" << endl;
- cin>>ime>>prezime;
- Kontakt k1(ime, prezime);
- try {
- cout << k1[-1] << endl;
- }
- catch (IndexOutOfBounds)
- {
- cout<<"Index out of bounds"<<endl;
- }
- //vashiot kod tuka
- } else if(n == 3) {
- cout << "Imenik constructor" << endl;
- Imenik im;
- cout << "OK" << endl;
- } else if(n == 4) {
- cout << "Imenik += and cout" << endl;
- Imenik im;
- cin>>ime>>prezime;
- Kontakt k1(ime, prezime);
- cin>>ime>>prezime;
- Kontakt k2(ime, prezime);
- cin>>ime>>prezime;
- Kontakt k3(ime, prezime);
- im += k1;
- im += k2;
- im += k3;
- cout << im << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment