Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Soba{
- private:
- int x;
- int y;
- public:
- Soba(){}
- Soba(int x,int y){
- this->x=x;
- this->y=y;
- }
- };
- class Kukja{
- private:
- char *adresa; // динамично алоцирана низа - адреса
- Soba *s; // динамично алоцирана низа од објекти од Soba
- int sobi;
- public:
- Kukja(){} // default constructor
- Kukja(char *adresa,Soba *s,int sobi){ // parameter constructor
- this->adresa=new char[strlen(adresa)+1];
- strcpy(this->adresa,adresa);
- this->sobi=sobi;
- this->s=new Soba[sobi];
- for(int i=0;i<this->sobi;i++){
- this->s[i]=s[i];
- }
- }
- Kukja(const Kukja &k){ // copy constructor
- this->adresa=new char[strlen(k.adresa)+1];
- strcpy(this->adresa,k.adresa);
- this->sobi=k.sobi;
- this->s=new Soba[k.sobi];
- for(int i=0;i<this->sobi;i++){
- this->s[i]=k.s[i];
- }
- }
- Kukja& operator=(Kukja &k){ // operator = ( isto ko copy constructor samo na kraj vrakjame tekovniot objekt *this
- this->adresa=new char[strlen(k.adresa)+1]; // kazuvame kolku ke bide dolga nizata t.e. kolku memorija ke zafakja
- strcpy(this->adresa,k.adresa); // koga sme obezbedile kolku ke bide dolga, ja kopirame
- this->sobi=k.sobi; // obicen int ne e dinamicki alociran
- this->s=new Soba[k.sobi]; // kazuvame kolkava ke bide nizata
- for(int i=0;i<this->sobi;i++){ // so for gi prefrlame site objekti zoshto nema drug nachin, strcpy e samo kaj char nizi
- this->s[i]=k.s[i];
- }
- return *this; // vrakjame objektot levo od = primer: Kukja k = a; ke prefrli site promenlivi od a vo k i na kraj ke vrati vrednostite vo k
- }
- void print(){
- cout<<"Kukjata e na adresa "<<adresa<<endl;
- }
- };
- int main(){
- Soba *sobi; // dinamicki alocirana niza od sobi
- int n;
- cin>>n;
- sobi=new Soba[n];
- int x,y;
- for(int i=0;i<n;i++){
- cin>>x>>y;
- sobi[i]=Soba(x,y); // ja polnime nizata so sobi t.e. vnesuvame informacii za sekoj objekt vo nizata
- }
- char adresa[50];
- cin>>adresa;
- Kukja k(adresa,sobi,n);
- Kukja c(k); // povik na copy constructor
- Kukja p=c; // povik na operator =
- p.print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement