background image

Podstawy programownia – laboratorium 

   

Katedra Podstaw Informatyki 

 

 mgr inż. Barbara Fryc 

  

 

Laboratorium nr 3 

Programowanie obiektowe w C++. Konstruktor kopiujący. 

Przeciążenie operatorów. 

 

 

P

RZYKŁAD

:

 

K

ONSTRUKTOR KOPIUJĄCY

 

   

Color (const Color & wzor){ 

//definicja konstruktora kopiującego 

  this->r = wzor.r; 
  this->g = wzor.g; 

this->b = wzor.b; 
strcpy (this->name, wzor.name); 
cout<<”Pracuje konstruktor kopiujacy!!!!”<<endl; 

 
 } 
 
//definicja operatora porównania 
int operator== (const Color & wzor) 

   if((wz.r ==r) && (wz.g== g)&& (wz.b== b)&&(strcpy(wz.name, name)); 

return 1; 

   else 

return 0; 


 
//definicja operatora wyjścia poza klasą 
friend ostream & operator <<(ostream & wy, Color & p) 

  wy<<" x= "<<p.r; 

wy<<" x= "<<p.g; 
wy<<" x= "<<p.b; 

  wy<<" y= "<<p.name<<endl; 
  return wy; 
}

 

 

background image

Podstawy programownia – laboratorium 

   

Katedra Podstaw Informatyki 

 

 mgr inż. Barbara Fryc 

  

 

Z

ADANIA

 

1.  Dla klasy Osoba z poprzedniego zadania opracować : 
-  konstruktor kopiujący: 
 

 

Osoba(const Osoba& wzorzec); 

 

 

-  funkcję składową '= =' klasy Osoba do porównywania obiektów.  
 

 

int operator = = (const Osoba& por); 

 

Funkcja  ma  zwracać  1  gdy  obiekty  mają  takie  same  składowe:  imie,  nazwisko,  wiek;  wartość  0  w 
przeciwnym  wypadku.    Do  porównywania  składowych  -  tablic  znaków  -  użyj  funkcji  bibliotecznej 

strcmp

 (

string.h

). 

  
-  wpisywania  do  strumienia  wyjściowego  dane  Osoby.  Funkcja  powinna  być zaprzyjaźniona  z  klasą 
Osoba. 
 

 

friend ostream& operator << (ostream &str_wy, const Osoba& osoba); 

 

-  funkcję operatorową wprowadzającą dane Osoby do strumienia wejściowego,  zaprzyjaźniona z klasą 
Osoba: 
 

 

friend istream& operator >> (istream &str_we, Osoba& osoba); 

 

 - operator przypisania dla klasy Osoba, którego prototyp ma postać: 

 

   

Osoba& operator=(const Osoba& wzor); 

 

 

2.  Przetestuj działanie nowych funkcje. 

  

void main() 

 

Osoba osoba1; 

 

Osoba osoba3; 

   Osoba osoba2("Ewa", "Pierwsza", 80, 76.3); 
 

osoba1.zapisz("Jan", "Nowak",0); 

 

osoba2.wypisz(); 

 

osoba1.wypisz(); 

 

osoba2=osoba1; 

 

cout<<osoba1; 

 

cout<<osoba2; 

 

cout<<"Podaj dane osoby:"; 

 

cin>>osoba3; 

 

cout<<osoba3<<endl; 

 

cout<<(osoba3==osoba2);